1. 程式人生 > 其它 >ts筆記 - 流動型別

ts筆記 - 流動型別

當改變一個型別時,其他相關的型別自動更新,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用於捕獲型別的鍵名(注意是型別的鍵名),兩者結合可以實現字串列舉的效果。

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
常用網站: SegmentFault | GitHub | 掘金社群