天天看點

TypeScript基本類型和變量聲明

typescript和javascript一樣,這是最簡單的資料類型為boolean,也就是true和false。

typescript和javascript一樣,typescript裡的所有數字都是浮點數,類型為number。和es6中一樣,typescript支援十進制,十六進制,二進制和八進制字面量。

我們可以用string來表示字元串,我們可以用下面幾種方式來表示。

有兩種方式可以定義數組。

1、可以在元素類型後面接上 [],表示由此類型元素組成的一個數組:

2、使用數組泛型,array<元素類型>:

元組類型允許表示一個已知元素數量和類型的數組,各元素的類型不必相同。

這裡要注意一點:自從 tyescript 3.1 版本之後,通路越界元素會報錯,我們不應該再使用該特性。

枚舉enum類型是對javascript标準資料類型的一個補充。使用枚舉類型可以為一組數值賦予友好的名字。

在預設的情況下,是從0開始為元素編号的,當然我們也可以手動指定成員的數值。

到了我們的“anyscript”(調侃)了,如果不指定類型的話,就是預設是any。

雖說anyscript是一個調侃,但是any類型還是十分有用的,我們可以在編譯的時候選擇性的包含或移除類型檢查。有時候,我們會想要為那些在程式設計階段還不清楚類型的變量指定一個類型。 這些值可能來自于動态的内容,比如來自使用者輸入或第三方代碼庫。 這種情況下,我們不希望類型檢查器對這些值進行檢查而是直接讓它們通過編譯階段的檢查。

在一定程度上。void和any是相反面,表示為沒有任何類型。當一個函數沒有傳回值時:

我們隻能為變量申明:undefined和null。

但是有時候可能會出現這種情況:

這是因為在tsconfig.json中把strict為true導緻的。

預設情況下null和undefined是所有類型的子類型,也就意味着可以指派給其他類型。

然而,當我們指定了--strictnullchecks标記,null和undefined隻能指派給void和它們各自。

never類型表示的是那些永不存在的值的類型。never類型是任何類型的子類型,也可以指派給任何類型;然而,沒有類型是never的子類型或可以指派給never類型(除了never本身之外)。 即使 any也不可以指派給never。

object表示非原始類型,也就是除number,string,boolean,symbol,null或undefined之外的類型。

類型斷言(type assertion)可以用來手動指定一個值的類型。也就是主觀地認為這個變量的類型是什麼。它沒有運作時的影響,隻是在編譯階段起作用。文法如下:

當我們在typescript裡使用jsx時,隻有 as文法斷言是被允許的。

typescript和javascript聲明變量的方式是一樣的:var、let、const。隻要對javascript有所了解,那麼用在typescript上問題就不大。

typescript中的一些相對javascript的特殊寫法:

繼續閱讀