TypeScript错误:映射类型无法声明属性或方法——泛型键值接口创建失败
解决TypeScript映射类型接口报错问题
这段代码报错A mapped type may not declare properties or methods.ts(7061),核心原因是TypeScript不允许在interface中使用映射类型语法,映射类型必须通过type别名来定义。
把代码改成下面的写法就能正常工作:
export type GetModel<K extends string, T> = { [key in K]: T; };
原因说明
interface只能用来定义常规的对象结构(比如固定键名的属性),而[key in K]这种遍历键的映射类型语法,属于TypeScript的类型别名专属能力。你看到的参考内容里应该也是用type而非interface,可能是混淆了两种定义方式。
这个GetModel类型的作用是生成一个对象类型:所有键都属于K约束的字符串类型,对应的值全是T类型。
内容的提问来源于stack exchange,提问作者Mehul Chaturvedi
相关产品推荐
相关产品推荐

