直接貼代碼,方便記憶。目前能想到的幾種使用計算屬性的寫法
const dyFunc = 'DyFunc';
const dyName = 'DyName';
const dySymbol = Symbol('DySymbolName');
//const dySymbol2 = dySymbol;
//const dySymbol1 = Symbol.iterator;
interface TT { ///class 類似
[dyFunc](): string;
[dyName]: string;
[dySymbol]: string;
Symbol.iterator: string;
// dySymbol1: string; 為了保證Symbol不重復利用,這樣的寫法編譯器是禁止的
// dySymbol2: string;
}
let a: TT = {
///計算函數
DyFunc() {
return '123';
},
//計算屬性
DyName: 'name',
[dySymbol]: 'DySymbolName',
[Symbol.iterator]: () => '1'
};
let x = {
[dyName]: 1
};
let y: {
[dyName]: string
} = {
DyName: 'dyNameText'
};
console.log(a[dyName]);
console.log(a[dyFunc]());
console.log(x[dyName]);
console.log(y[dyName]);
