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