TypeScript使用noImplicitAny實戰(zhàn)解析
我應該使用noImplicitAny TypeScript編譯器標志嗎?
noImplicitAny
編譯器選項所做的,基本上是將TypeScript從可選類型語言轉換為強制類型檢驗語言。
這使得TypeScript離JavaScript的超集稍微遠了一些,因為簡單的:
function logMe(x) { console.log(x); } // error TS7006: Parameter 'x' implicitly has an 'any' type.
也將報錯——你必須明確聲明x
的類型為any
:
function logMe(x: any) { console.log(x); } // OK
這意味著,如果你要把現(xiàn)有的JS代碼庫遷移到TS,那除了更改文件擴展名,你還得做一些較復雜的東西。這還意味著,在編寫代碼時,您需要更多地關注類型,如果不指定類型,編譯器就總是會「抱怨」。
顯式地聲明
由于在實際情況中顯式地聲明any
被認為是不好的實踐,所以在開發(fā)過程的早期,您就需要分配正確的類型。如果沒有顯式的聲明,這可能意味著「我太懶了,沒有正確地注釋這里的類型」。
這樣子到底是好是壞是有很大爭議的,社區(qū)在這個問題上似乎存在分歧。下面是一些業(yè)界領先的TypeScript項目,以及它們是否使用了noImplicitAny
編譯器標志:
Project | Uses noImplicitAny |
---|---|
Angular | YES |
RxJS | YES |
VSCode | NO |
Babylon.js | NO |
接下來下面是我的觀點:我們使用TypeScript,是因為類型提供了有意義的額外信息,可以作為文檔、并在早期捕獲錯誤。如果想在項目的代碼中都享受這種益處,那就不應該只在某個地方添加類型——把它們添加到任何地方,就可以完成了。
否則你就有可能做出如下額外的思考:
“嗯,我應該在這里添加類型嗎?我有點懶,但這很好,但我還有其他工作要做……「我們明天再做吧?!?/p>
因此,我的建議是將noImplicitAny
設置為true
。
以上就是TypeScript使用noImplicitAny實戰(zhàn)解析的詳細內容,更多關于TypeScript使用noImplicitAny的資料請關注腳本之家其它相關文章!
相關文章
TypeScript使用strictnullcheck實戰(zhàn)解析
這篇文章主要為大家介紹了TypeScript使用strictnullcheck實戰(zhàn)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08Typescript是必須要學習嗎?如何學習TS全棧開發(fā)
Typescript目前在前端,網(wǎng)站,小程序中的位置基本無可替代,同時也可以構建完美的CLI應用。在移動,桌面,后端方面,性能不是要求很高的情況下完全可以勝任,并且在區(qū)塊鏈,嵌入式,人工智能方面也開始茁壯成長。2022-12-12Webpack source map實戰(zhàn)分析詳解
這篇文章主要為大家介紹了Webpack source map示例分析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12TypeScript類型編程中的extends和infer示例解析
這篇文章主要為大家介紹了TypeScript類型編程中的extends和infer示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08