TypeScript 基礎入門-型別推論

前言

前面已經了解該如何設置變數型別的方式,但是尾段其實也有講到如果不設置型別也是會編譯成功,但是實際上真的是這樣子嗎?這邊就來講講 TypeScript 裡面有一個很特別的東西,叫做型別推論,就算你不宣告型別 TypeScript 也會自己判定,來了解看看吧~

何謂型別推論

其實很簡單,如果你沒有明確的跟 TypeScript 宣告這個變數的型別,那麼 TypeScript 就會依照你目前的類型作判定,這英文稱為 Type Inference,讓我們來看一下範例。

範例

我們可以看到下方的變數並沒有指定型別,但是這在 TypeScript 是沒有任何問題的

1
let man = 'Ray';

但是如果是這樣子呢?

1
2
let man = 'Ray';
man = 10;

這時候你就會得到一個錯誤

不正確的型別

為什麼會這樣子呢?實際上在如果你沒有給予型別時,TypeScript 就會依照當前傳入的值自己做辨別,所以實際上程式碼雖然是這樣子

1
let man = 'Ray';

但是真正在 TypeScript 眼中是這個樣子

1
let man:string = 'Ray';

所以撰寫 TypeScript 是可以減少一些很奇怪的問題,但是如果不賦予值呢?

1
2
3
let man;
man = 10;
man = '123';

那就不會被 TypeScript 型別推論,因為這時候的 TypeScript 不管怎樣都會判定成 any 的類型,但是非常不建議這樣做,這樣非常有可能導致一些無法預期的 Bug。

TypeScript

0%