我在Typescript中有以下代码。为什么编译器会引发错误?
var object = {};
Object.defineProperty(object, 'first', {
value: 37,
writable: false,
enumerable: true,
configurable: true
});
console.log('first property: ' + object.first);
Run Code Online (Sandbox Code Playgroud)
js.ts(14,42):错误TS2339:类型“ {}”上不存在属性“ first”。
与mozilla 的文档(示例部分)中的代码段相同。
使对象类型为any:
var object: any = {};
Run Code Online (Sandbox Code Playgroud)
另一种方法是做接口,因此编译器将知道该属性存在。
interface IFirst{
first:number;
}
let object = {} as IFirst;
Object.defineProperty(object, 'first', {
value: 37,
writable: false,
enumerable: true,
configurable: true
});
console.log('first property: ' + object.first);
Run Code Online (Sandbox Code Playgroud)
看看这个问题如何在TypeScript中自定义属性
归档时间: |
|
查看次数: |
12023 次 |
最近记录: |