Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 对象文字的TS接口_Typescript - Fatal编程技术网

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| }