Typescript 对象文字的TS接口
我已经厌倦了为泛型对象编写Typescript 对象文字的TS接口,typescript,Typescript,我已经厌倦了为泛型对象编写Record接口。因此,我得到了以下解决方案,用于为具有动态键的对象定义接口,如下所示 interface object { [key: string]: any; } 但是,当我使用它时,我会遇到以下错误: 第2行:类型“object”上不存在属性“error” 请提供帮助。类型脚本已经有一个对象类型,因此您不能使用对象作为类型名称。(您的界面上应该有一个错误声明。) 请使用不同的名称: 接口基本对象{ [键:字符串]:任意; } 常量fn=(数据:Basi
Record
接口。因此,我得到了以下解决方案,用于为具有动态键的对象定义接口,如下所示
interface object {
[key: string]: any;
}
但是,当我使用它时,我会遇到以下错误:
第2行:类型“object”上不存在属性“error”
请提供帮助。类型脚本已经有一个
对象
类型,因此您不能使用对象
作为类型名称。(您的界面上应该有一个错误声明。)
请使用不同的名称:
接口基本对象{
[键:字符串]:任意;
}
常量fn=(数据:BasicObject)=>{
if(data.errors){
控制台错误(数据);
}
};
(如果愿意,还可以将类型定义为type BasicObject=Record;
)TypeScript已经有了对象
类型,因此不能使用对象
作为类型名称。(您的界面上应该有一个错误声明。)
请使用不同的名称:
接口基本对象{
[键:字符串]:任意;
}
常量fn=(数据:BasicObject)=>{
if(data.errors){
控制台错误(数据);
}
};
(如果愿意,还可以将类型定义为type BasicObject=Record;
)替代解决方案:使用:any
而不是创建与any
完全相同的接口
我知道建议使用显式类型,并避免使用任何any
。但是,既然您想要相同的功能,那么最好使用广为人知的关键字,而不是为此创建自己的接口
显然,只有在界面上不需要其他命名和类型化属性的情况下,使用any
才有效,但从问题来看,它似乎不需要。替代解决方案:使用:any
,而不是创建与any
完全相同的界面
我知道建议使用显式类型,并避免使用任何any
。但是,既然您想要相同的功能,那么最好使用广为人知的关键字,而不是为此创建自己的接口
显然,只有在界面上不需要其他命名和类型化属性的情况下,才可以使用any
,但从问题的角度看,似乎不需要。啊,伙计,这太愚蠢了。不允许对象作为标识符的原因是什么?@AakashVerma-因为TypeScript已经有了一个标识符。允许你用另一种方式重新定义它将是自找麻烦。我同意。您能否将对象的链接作为内置类型发布?不知怎的,我找不到它。我以前也没见过。非常感谢。顺便说一句。我的皮棉没有弄错。我在想,我能错过什么呢?@AakashVerma-Hmmm.听起来好像TypeScript本身没有针对代码运行?只是知道如何解析TypeScript的东西?我想知道是不是TS没有阻止你这么做,但根据《游乐场》的说法,即使是v3.3.3也有。。。快乐编码!啊,伙计,这太愚蠢了。不允许对象作为标识符的原因是什么?@AakashVerma-因为TypeScript已经有了一个标识符。允许你用另一种方式重新定义它将是自找麻烦。我同意。您能否将对象的链接作为内置类型发布?不知怎的,我找不到它。我以前也没见过。非常感谢。顺便说一句。我的皮棉没有弄错。我在想,我能错过什么呢?@AakashVerma-Hmmm.听起来好像TypeScript本身没有针对代码运行?只是知道如何解析TypeScript的东西?我想知道是不是TS没有阻止你这么做,但根据《游乐场》的说法,即使是v3.3.3也有。。。快乐编码!
1| (data: object) => {
2| if(data.errors) {
3| console.error(data);
4| }
5| }