新版Angular中使用的Typescript書寫規(guī)范非常惱人,比如默認會啟用no-trailing-whitespace這樣的選項。官方對此的說明是為了配合GIT的使用規(guī)范倔撞。
雖然這種規(guī)則在規(guī)范程序員的代碼風格方面有一定作用赏僧,但是對于已經(jīng)形成自身風格的人而言,純粹是多此一舉定欧。比如本人在Oracle實習期間匹耕,看到后端項目中Java代碼的風格也是因人而異聚请,比如有些人喜歡在方法之間間隔一行,有些人就不將方法分隔開稳其;有些會將不同作用的程序段用空行隔開驶赏;有些不會在等號賦值左右加上空格……但這些都不會影響代碼的閱讀。個人認為既鞠,只要縮進得當煤傍,風格穩(wěn)定,并且遵循一定的規(guī)范嘱蛋,都不會很大程度上影響閱讀蚯姆。而TS在這些方面的吹毛求疵雖然非常嚴格地規(guī)范了代碼風格,卻也影響了寫代碼的效率洒敏。(使用文本編輯器的例外)
說點題外話蒋失,先前在Ionic框架上做Hybrid App的時候使用的TSLint還是比較舒服的,雖然沒有去注意該團隊是否已對TSLint進行個性化設置桐玻。
以下將幾個比較麻煩的選項說明一下:
1.尾部空格檢測
"no-trailing-whitespace": false,
這個一定要選擇false,要不然每行代碼后面都不能有空格荆萤,包括換行以后產(chǎn)生的空格镊靴。這對喜歡將不同功能程序段用空行分割的人而言簡直是噩夢。
2.行內檢測
"one-line": [
true,
"check-open-brace",
"check-catch",
"check-else",
"check-whitespace"
],
這個里面可以自行配置自身需要的链韭,比如check-whitespace這項就會要求函數(shù)名偏竟,參數(shù)表和函數(shù)段開頭的大括號之間要有空格。當然也可以設置為false敞峭,將這個功能完全禁用踊谋。
3.關鍵字var
"no-var-keyword": true,
如果這一項啟用的話,就不能在程序段中使用var來生成變量旋讹。本身ES6提供的let確實很好用殖蚕,但如果需要利用var的特性(比如變量提升)來實現(xiàn)一些程序段的話轿衔,那就不能禁用。
4.注釋行中的空格
"comment-format": [
true,
"check-space"
],
如果check-space這一項存在睦疫,那么注釋行的開頭必須要加上一個空格害驹。這個對于使用英文注釋的人來說,沒有多大影響蛤育,但是中文話就沒有必要宛官。注釋畢竟是區(qū)別于代碼段的,要使用如何的書寫格式應當自己來決定瓦糕。去掉這一項底洗,或者將整個commet-format的值改為false,就可以將其禁用咕娄。
5.空格在其他部分的設置
"whitespace": [
true,
"check-branch",
"check-decl",
"check-operator",
"check-separator",
"check-type"
],
whitespace這一項決定了在哪些情況下必須先插入空格亥揖,然后寫入自己的代碼。比如check-separator這一項就會要求在初始化數(shù)組的時候谭胚,相鄰元素間不僅要用“,”分隔徐块,還需要在其之后加入空格。
6.引用規(guī)范
"quotemark": false,
quotemark規(guī)定了引用符號的格式灾而,比如在true,'single'的模式下胡控,就會強制規(guī)定引用時必須使用單引號。然而旁趟,即使是WebStorm默認的引用格式也是雙引號昼激,這樣就必須修改IDE的引用格式,或者將這個規(guī)則禁用锡搜,否則每次引用都要手動將雙引號改為單引號橙困。
7.const偏好
"prefer-const": false,
這一項會在變量沒有在程序段中重新賦值的時候提示使用const,這么做可以優(yōu)化性能耕餐。然而凡傅,這樣的設定也會引發(fā)一些問題,畢竟我們在設計的時候會考慮到后期對某些變量可能會進行修改肠缔。建議在初期開發(fā)完成夏跷,程序處理邏輯趨于穩(wěn)定,進入性能優(yōu)化的環(huán)節(jié)后再把這一項啟用明未,協(xié)助檢查哪些變量可以用const優(yōu)化槽华。
其他的后續(xù)繼續(xù)補充。