0
這是我的示例代碼。 [TS]元素含蓄有一個「任意」類型,因爲類型「計算機」沒有指數的簽名元素隱含有'任何'類型,因爲類型'計算機'沒有索引簽名
interface iAdd {
add(a: number): number;
}
class Computer implements iAdd {
add(a: number): number {
return a + 1;
}
add10(a: number): number {
return a + 10;
}
}
var computer = new Computer();
console.log(computer.add(1));
console.log(computer.add10(1));
// for now everything is working, however what i want is below,
let methodName:string = 'add10';
computer[methodName]();
// now there is an error:
// I don't want to use this way to fix, i want a safer way.
(<any>computer)[methodName](); // don't want this fix
請幫我
感謝Nitzan爲您解答。我真正的問題是,我不知道它會有多少功能,計算機類也可以繼承。它會引入更多的功能,我希望methodName可以是動態的,真正的功能將在實時確定。我怎樣才能做到這一點? –
應該使用我給出的最後一個選項(使用'keyof')。如果您遇到問題,請使用示例更新問題。 –