剛學習TypeScript,但由於立刻要用,主要是尋求先快速上手,然後再求精。html
推薦學習網站:程序員
1)https://www.runoob.com/typescript/ts-tutorial.htmltypescript
2)TypeScript官網編程
3)白鷺引擎官網(針對遊戲開發者)數組
4)流浪小貓的入門教程 (剛發現,感受很不錯)網絡
由於之前有C++/C#/基礎,經過對比學習的方式能夠更快上手,本文針對與C++/C#的一些語法的不一樣點來接觸TypeScript,而沒有提到的部分意味着差異不大(由於是快速上後,瞭解尚淺,因此差異不大不表明徹底相同)函數
本文不是用於學習TypeScript(若是想學習,請到上面三個網站),而是用於學習TypeScript後的複習和快速記憶。學習
TypeScript相比C++/C#的不一樣點(內容源於網絡,大部分來源於Runoob):網站
* 分號是可選的:你可使用分號或不使用, 分號在 TypeScript 中是可選的,建議使用。spa
* TypeScript數據類型有:any、number、string、boolean、數組、元組、枚舉、void、null、undefined、never
* Any類型:任意值是 TypeScript 針對編程時類型不明確的變量使用的一種數據類型,它經常使用於如下三種狀況:
1)變量的值會動態改變時,好比來自用戶的輸入,任意值類型可讓這些變量跳過編譯階段的類型檢查;
2)改寫現有代碼時,任意值容許在編譯時可選擇地包含或移除類型檢查;
3)定義存儲各類類型數據的數組時
* null是一個只有一個值的特殊類型。表示一個空對象引用。用 typeof 檢測 null 返回是 object。
* undefined:在 JavaScript 中, undefined 是一個沒有設置值的變量。typeof 一個沒有值的變量會返回 undefined。
* Null 和 Undefined 是其餘任何類型(包括 void)的子類型,能夠賦值給其它類型,如數字類型,此時,賦值後的類型會變成 null 或 undefined
* 而在TypeScript中啓用嚴格的空校驗(--strictNullChecks)特性,就可使得null 和 undefined 只能被賦值給 void 或自己對應的類型
* never 是其它類型(包括 null 和 undefined)的子類型,表明從不會出現的值。這意味着聲明爲 never 類型的變量只能被 never 類型所賦值,在函數中它一般表現爲拋出異常或沒法執行到終止
點(例如無限循環)
* 變量名命名規則特別點:除了下劃線 _ 和美圓 $ 符號外,不能包含其餘特殊字符,包括空格。
* 變量聲明方式:
1)var [變量名] : [類型] = 值;
2)var [變量名] : [類型]; // 初值爲undefined
3)var [變量名] = 值; // 進行類型推斷,值能夠說任意類型,可是區別於any類型,當肯定值的類型後不能修改
4)var [變量名]; // 同第三種,值能夠說任意類型, 默認初始值爲 undefined
* 類型斷言
方式1:<類型>值,如:
var str = '1' ; var str2:number = <number> <any> str //str、str2 是 string 類型
方式2:值 as 類型
* 類型斷言之因此不被稱爲類型轉換,是由於轉換一般意味着某種運行時的支持。可是,類型斷言純粹是一個編譯時語法,同時,它也是一種爲編譯器提供關於如何分析代碼的方法
* var和let聲明的區別:
1)let 是塊做用域,即其在整個大括號 {} 以內可見;
2)let在變量聲明以前就訪問變量的話,會直接提示 ReferenceError,而不像 var 那樣使用默認值 undefined。
* const也是變量聲明的一種,const 和 let 的做用域是一致的,不一樣的是 const 變量一旦被賦值,就不能再改變了。如:const a: string = "Hello";
* let/const/var使用場景:大多數狀況下都使用 const,除非你知道你的變量的值還會被改變,這樣的話,別人閱讀你的代碼不用老想着這個變量的值會不會有改變。若是這個變量的值的確須要改變
,例如在 for 循環裏面,那麼就是用 let。這也同時意味着你之後就不要用 var 了。關於 const 的使用,一些程序員還傾向於只用來聲明常量,其它狀況下一概使用 let 關鍵字,我以爲這樣也是
可行的。
持續更新中....