以下是您可以在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}输入。
是否可以动态执行此操作,因为在我的代码中,我不知道在运行时将使用哪种类型来填充对象(所以我将其保留为默认输入)?
提前感谢您的帮助。
答案 0 :(得分:1)
TS中有一种特殊类型:any
。它更接近"默认类型"然后是一个空对象类型({}
)。如果符号(变量,属性)没有可用的类型信息,则编译器默认使用它。