ts筆記 - 流動型別
阿新 • • 發佈:2021-11-11
當改變一個型別時,其他相關的型別自動更新,ts這麼設計是為了更好的與js的動態性相互結合。
捕獲變數的型別
通過 typeof 操作符可以捕獲到變數的型別(不適用於常量)
let foo = 123;
let bar: typeof foo; // 'bar' 型別與 'foo' 型別相同(在這裡是: 'number')
bar = 456; // ok
捕獲類成員的型別
宣告一個變數,表示要捕獲的型別,然後使用typeof
捕獲這個型別。
class Foo { foo: number; } declare let _foo: Foo; let bar: typeof _foo.foo; // number 型別
捕獲字串型別
使用常量宣告一個型別,然後使用typeof
捕獲這個常量型別。
const foo = 'Hello World';
// 使用一個捕獲的型別
let bar: typeof foo;
bar = 'Hello World'; // ok
捕獲鍵名
typeof
用於捕獲變數的型別,keyof
用於捕獲型別的鍵名(注意是型別的鍵名),兩者結合可以實現字串列舉的效果。
常用網站: SegmentFault | GitHub | 掘金社群const colors = { red: 'red', blue: 'blue' }; type Colors = keyof typeof colors; // 先使用typeof獲取到型別 { red: string, blue: string },然後使用keyof獲取到鍵名 'red' | 'blue' let color: Colors = 'red'; // OK color = 'blue'; // OK color = 'green'; // ERROR