這裏的例子,你可以在操場上打字原稿貼:更改或重新分配對象打字稿動態輸入
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}輸入。
是否可以動態執行此操作,因爲在我的代碼中,我不知道在運行時將使用哪種類型填充對象(因此我將它作爲默認輸入)?
非常感謝您的幫助。
您應該重新設計您的代碼以始終使用相同的類型。 – SLaks
*在我的代碼中,我不知道哪種類型將用於在運行時填充對象* - 您是怎麼意思的?如果你不知道類型,那麼你的代碼有幾個錯誤,因爲它假定'greeting'是一個帶有'text'屬性的對象。 – Aaron
試想一下,在一個類中共享屬性對象:你不知道其他人如何定義這個共享對象,所以他們需要能夠應用自己的輸入並獲得他們自己的智能感知。 – Alphapage