在typescript中动态更改或重新分配对象

时间:2017-05-26 14:13:41

标签: typescript

以下是您可以在typescript playground中粘贴的示例:

class Greeter {
greeting: {};
constructor(message: string) {
    let newTyping: { text: string }; // reassign needed
    this.greeting=newTyping
    this.greeting.text = message; // typing error
}
greet() {
    return "Hello, " + this.greeting.text;
 }
}

let greeter = new Greeter("world");

let button = document.createElement('button');
button.textContent = "Say Hello";
button.onclick = function() {
alert(greeter.greet());
}

document.body.appendChild(button);

如您所见,this.greeting.text显示错误:我需要将{}重新分配给{text:string}输入。

是否可以动态执行此操作,因为在我的代码中,我不知道在运行时将使用哪种类型来填充对象(所以我将其保留为默认输入)?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

TS中有一种特殊类型:any。它更接近"默认类型"然后是一个空对象类型({})。如果符号(变量,属性)没有可用的类型信息,则编译器默认使用它。