TS错误:Property 'xxx' does not exist on type 'object'.

在TS中按照JS的方式去获取对象属性,有时会提示如下的错误。

var obj: Object = {};
obj.value = "value"; //[ts] Property 'value' does not exist on type'Object'.

这是因为TS在代码执行检查时在该对象没有定义相应的属性,解决办法如下:

1.将对象类型设置为any

var obj: any = Object.create(null);
obj.value = "value";

2.通过字符方式获取对象属性

var obj: Object = Object.create(null);
obj["value"] = "value";

3.通过接口定义对象所具有的属性(有点麻烦)

interface ValueObject {
  value?: string
}
var obj: ValueObject = Object.create(null);
obj.value = "value";

4.使用断言强制执行(声明断言后,编译器会按断言类型去执行)

var obj: Object = Object.create(null);
(obj as any).value = "value";

你可能感兴趣的:(TS错误:Property 'xxx' does not exist on type 'object'.)