摘要:我應該使用編譯器標志嗎編譯器選項所做的,基本上是將從可選類型語言轉換為強制類型檢驗語言。由于在實際情況中顯式地聲明被認為是不好的實踐,所以在開發(fā)過程的早期,您就需要分配正確的類型。因此,我的建議是將設置為。
我應該使用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,是因為類型提供了有意義的額外信息,可以作為文檔、并在早期捕獲錯誤。如果想在項目的代碼中都享受這種益處,那就不應該只在某個地方添加類型——把它們添加到任何地方,就可以完成了。
否則你就有可能做出如下額外的思考:
“嗯,我應該在這里添加類型嗎?我有點懶,但這很好,但我還有其他工作要做……「我們明天再做吧?!?/pre>因此,我的建議是將noImplicitAny設置為true。
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/110250.html
摘要:因為標志在時添加的,所以它的使用還沒有那么廣泛。截至年月,項目和項目中使用了該標志,而或都沒有使用該標志。如果執(zhí)行條件檢查可以推斷某些內(nèi)容是非空的。然而,對于三元運算符來說,不幸的是情況并非如此。 原文2017年7月發(fā)布并于2017年9月更新strictnullcheck(嚴格的null檢查) 我應該使用strictnullcheck TypeScript編譯器標志嗎? 空指針是最常...
摘要:原文地址原文作者譯者校對者和其他人有一些關于比較好的博文,跟隨這些博文,我最近開始使用。今天,我將展示如何從零開始建立一個工程,以及如何使用管理構建過程。我也將陳述關于的第一印象,尤其是使用和。 原文地址:Getting started with TypeScript and React 原文作者:Jack_Franklin 譯者:luxj 校對者:veizz Tom Dale...
摘要:編譯在運行時才揭露它們,那樣有點太晚了。這是減少應用程序占用空間的最有效的技術之一。這將在未來得到改變。當前的最佳實踐是在開發(fā)器使用編譯,然后在發(fā)布產(chǎn)品前切換到編譯 概覽 眾所周知, angular應用在可執(zhí)行之前, angular應用中的組件和模板必須被轉化為可以被瀏覽器識別的javascript代碼, 而這種轉化正是通過angualr自身的編譯器所執(zhí)行的. angular提供了兩種...
摘要:首先,要確認安裝了,并且創(chuàng)建了目錄并執(zhí)行初始化。想必看見上面的那么多包會一臉懵逼,沒關系,我第一眼看見這些的那刻,和你現(xiàn)在的表情一樣,下面在適當?shù)臅r候我會逐個解釋的,你只需要相信我上面的包都是跑所必須的,缺一不可。 關于介紹,只說一句:Angular 2是一個強大、全面、龐大的MVVM框架。 安裝 安裝,也算是一個坎,因為你需要安裝一大堆東西,卻不知道每個東西是做什么的,盡管有Angu...
摘要:但是,從長遠來看,尤其是多人協(xié)作的項目,還是很有必要的。第二參數(shù)為了某些場景下要大寫強調(diào),只需要傳入即可自動將結果轉成大寫。這個有可能是業(yè)務上線了之后才發(fā)生,直接導致業(yè)務不可用。而這也被證明是個好的編碼方式。 只是抱著嘗試的心態(tài)對項目進行了遷移,體驗了一番typeScript的強大,當然,習慣了JavaScript的靈活,弱類型,剛用上typeScript時會很不適應,猶如懶散慣了的人...
閱讀 1572·2021-11-24 09:39
閱讀 1061·2021-11-22 15:11
閱讀 2201·2021-11-19 11:35
閱讀 1639·2021-09-13 10:37
閱讀 2472·2021-09-03 10:47
閱讀 2159·2021-08-30 09:47
閱讀 1642·2021-08-20 09:39
閱讀 2918·2019-08-30 14:13