'any'vs 'Object';
我在看TypeScript代码时注意到他们使用了:
interface Blablabla {
field: Object;
}
使用 "Object "与 "any "的好处是什么,如:
interface Blablabla {
field: any;
}
188
3
我在看TypeScript代码时注意到他们使用了:
interface Blablabla {
field: Object;
}
使用 "Object "与 "any "的好处是什么,如:
interface Blablabla {
field: any;
}
"Object "比 "any "更具限制性。比如说:
Object "类没有 "nomethod() "函数,因此转码器会产生一个错误,确切地告诉你。如果你用
any
代替,你基本上是在告诉转码器,任何东西都可以,你没有提供关于a
中存储的信息--它可以是任何东西!因此转码器会允许你使用any
!因此,转码器将允许你对定义为any
的东西做任何事情。所以简而言之
any
可以是任何东西(你可以在它上面调用任何方法等而不会出现编译错误)。Object
暴露了定义在Object
类中的函数和属性。alex的回答很好地解释了 "any "是TypeScript特有的东西。
Object
指的是JavaScript的对象
类型。常用的是{}
或者有时是new Object
。在javascript中的大多数东西都与对象数据类型兼容,因为它们继承自对象。但是any
是TypeScript特定的,与所有东西双向兼容(不是基于继承)。例如::Object似乎是一个比任何更具体的声明。来自TypeScript规范(第3节):
还有:
对象不允许有同样的灵活性。
比如说: