hello
和 10
的位置對調,便會發生錯誤:substring()
用於分割字串,舉例:const str = 'Mozilla';console.log(str.substring(1, 3));// expected output: "oz"console.log(str.substring(2));// expected output: "zilla"根據上面的程式碼可得知: 我們可以輸入substring(起點,終點)
或是substring(希望廢棄段落的終點)
。
enum
的成員會被賦值為從 0
開始遞增的數字,就像是:==
與全等 ===
、自動轉型請參考本日的延伸閱讀。
JAN
對應到的是 0
而不是 1
,該怎麼做呢?enum
中的元素手動賦值,如此一來其他元素也會依循前面的元素遞增:Never
型別用於以下情況:void
。Never
與 Void
還是有些不同:Void
代表的是沒有回傳值的函式,而 Never
會用於表示本就不會有回傳值,或是會拋出錯誤的函式:Never
型別就派上用場了。Never
型別的變數僅能被賦值給另外一個 Never
:Unknown
與 Any
型別有一個共同點,就是: 所有類型都可以被歸類成 Unkown
, Any
。Unknown
還是有其特別之處,畢竟它的誕生就是為了解決 Any
型別不夠嚴謹的問題。Unknown
的變數也能夠像型別 Any
的變數一樣被任意賦值。Any
的差別到底在哪,就讓我們繼續往下看:Any
與 Unknown
型別可以被存放任意值,作為更嚴謹的 Unknown
型別,就會有更嚴格的規範。Unknown
的變數僅能在被賦值為 Any
或是 Unknown
型別的變數:看看Any
。
Unknown
的變數無法進行任意操作,因為對於 TypeScript 來說,它會將該變數認定為內容不明確的變數。為了避免錯誤操作,所以不允許使用者任意操作 Unknown
型別的變數。Any
型別的變數,在被宣告的那一刻就被 TypeScript 當成放棄治療的孩子了,所以你想怎麼做都行:同樣的事情在不同人眼中可能會有不同的見解、看法。在讀完本篇以後,筆者也強烈建議大家去看看以下文章,或許會對型別、變數宣告...等觀念有更深層的看法唷!