对象

时间:2017-08-08 08:11:12

标签: javascript object typescript

关于JS中的对象的一个​​问题(typescript)。我有以下代码,工作正常

myObj: { type: string } = { type: '' };
this.myObj.type = 'Abcd';

但我希望这段代码能够正常工作

myObj: { type: string };
this.myObj.type = 'abcd'; // this.myObj['type'] = 'Abcd'; also not working

为什么不起作用?我究竟做错了什么? 我得到'无法设置属性类型为null'

1 个答案:

答案 0 :(得分:2)

此:

let myObj: { type: string };

编译到这个javascript:

var myObj;

正如您所看到的,您并未为其分配值,因此,如果您尝试这样做:

myObj.type = "what not";

由于myObj未定义,您将收到错误。

你可以这样做:

let myObj = { type: '' };

编译器将推断出myObj的正确类型 通过这种方式,它将具有一个值,您不必同时写入值和类型。