TypeScript使用noImplicitAny實(shí)戰(zhàn)解析
我應(yīng)該使用noImplicitAny TypeScript編譯器標(biāo)志嗎?
noImplicitAny編譯器選項(xiàng)所做的,基本上是將TypeScript從可選類型語(yǔ)言轉(zhuǎn)換為強(qiáng)制類型檢驗(yàn)語(yǔ)言。
這使得TypeScript離JavaScript的超集稍微遠(yuǎn)了一些,因?yàn)楹?jiǎn)單的:
function logMe(x) {
console.log(x);
}
// error TS7006: Parameter 'x' implicitly has an 'any' type.也將報(bào)錯(cuò)——你必須明確聲明x的類型為any:
function logMe(x: any) {
console.log(x);
}
// OK這意味著,如果你要把現(xiàn)有的JS代碼庫(kù)遷移到TS,那除了更改文件擴(kuò)展名,你還得做一些較復(fù)雜的東西。這還意味著,在編寫代碼時(shí),您需要更多地關(guān)注類型,如果不指定類型,編譯器就總是會(huì)「抱怨」。
顯式地聲明
由于在實(shí)際情況中顯式地聲明any被認(rèn)為是不好的實(shí)踐,所以在開發(fā)過程的早期,您就需要分配正確的類型。如果沒有顯式的聲明,這可能意味著「我太懶了,沒有正確地注釋這里的類型」。
這樣子到底是好是壞是有很大爭(zhēng)議的,社區(qū)在這個(gè)問題上似乎存在分歧。下面是一些業(yè)界領(lǐng)先的TypeScript項(xiàng)目,以及它們是否使用了noImplicitAny編譯器標(biāo)志:
| Project | Uses noImplicitAny |
|---|---|
| Angular | YES |
| RxJS | YES |
| VSCode | NO |
| Babylon.js | NO |
接下來下面是我的觀點(diǎn):我們使用TypeScript,是因?yàn)轭愋吞峁┝擞幸饬x的額外信息,可以作為文檔、并在早期捕獲錯(cuò)誤。如果想在項(xiàng)目的代碼中都享受這種益處,那就不應(yīng)該只在某個(gè)地方添加類型——把它們添加到任何地方,就可以完成了。
否則你就有可能做出如下額外的思考:
“嗯,我應(yīng)該在這里添加類型嗎?我有點(diǎn)懶,但這很好,但我還有其他工作要做……「我們明天再做吧?!?/p>
因此,我的建議是將noImplicitAny設(shè)置為true。
以上就是TypeScript使用noImplicitAny實(shí)戰(zhàn)解析的詳細(xì)內(nèi)容,更多關(guān)于TypeScript使用noImplicitAny的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
TypeScript實(shí)現(xiàn)十大排序算法之歸并排序示例詳解
這篇文章主要為大家介紹了TypeScript實(shí)現(xiàn)十大排序算法之歸并排序示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
TypeScript開發(fā)HapiJS應(yīng)用詳解
這篇文章主要為大家介紹了TypeScript開發(fā)HapiJS應(yīng)用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
TypeScript類型any never void和unknown使用場(chǎng)景區(qū)別
這篇文章主要為大家介紹了TypeScript類型any never void和unknown使用場(chǎng)景區(qū)別,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
微信小程序?qū)崿F(xiàn)圖片自適應(yīng)(支持多圖)
這篇文章主要介紹了微信小程序如何實(shí)現(xiàn)圖片自適應(yīng)的相關(guān)資料,文中介紹的方法同樣適應(yīng)于多圖,有需要的朋友可以參考借鑒,下面來一起看看吧。2017-01-01
TypeScript類型編程中的extends和infer示例解析
這篇文章主要為大家介紹了TypeScript類型編程中的extends和infer示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
jsf實(shí)現(xiàn)微信小程序簡(jiǎn)潔登錄頁(yè)面(附源碼)
這篇文章主要介紹了實(shí)現(xiàn)微信小程序簡(jiǎn)潔登錄頁(yè)面?,對(duì)于正在學(xué)習(xí)的小伙伴都有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-01-01
TypeScript數(shù)據(jù)結(jié)構(gòu)棧結(jié)構(gòu)Stack教程示例
這篇文章主要為大家介紹了TypeScript數(shù)據(jù)結(jié)構(gòu)棧結(jié)構(gòu)Stack教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02

