關於TypeScript中null,undefined的使用


TypeScript本質是javascript,因此基本上js所有的功能在ts上完全可以照搬照抄過來使用。根據ts的文檔,有些我覺得值得商榷的——比如null,undefined就是例子。

文檔上說一個變量如果是number,boolean等基本類型,可以為null或者是undefined。在我看來,既然TS是“強語言”類型,我們應該也有理由仿效C#等強類型語言,在完全定義了某個變量是何種類型之后,初始化賦值用null還是undefined。先就決定:

1、如果變量是明確的基類型(number,boolean,string),一律用undefined做未定義值初始化。

2、其余類型一律視作“引用類型”,因此一律null初始化。

此外,在判斷類型是否初始化問題上同理。值得注意的是——如果無法確定某個變量究竟是何種類型(ts允許對any變量更改賦值,這意味着該變量類型隨時可能變更),建議使用“變量==null或者undefined”方式(雙等於而不是三等於,因為三等於明確要確定該變量是何種類型之后方可決定用undefined或者是null)。

此外,判斷某個對象是否包含某個方法或者屬性,用js中的"in"而不是用null或者undefined(因為后兩者僅僅判斷是否被初始化了,前者完全可以判斷是否具備該屬性或者方法)。例如判斷windows對象有沒有一個叫“location”的屬性,可以"location" in windows。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM