基礎祕籍之TypeScript編碼指南

基礎秘籍之TypeScript編碼指南

編碼指南

命名

  1. 使用 PascalCase 方式對類進行命名.
  2. 接口命名中不要使用前綴字母 I .
  3. 使用 PascalCase 方式對枚舉值進行命名.
  4. 使用 camelCase 方式對函數進行命名.
  5. 使用 camelCase 方式對屬性和本地變量進行命名.
  6. 私有屬性命名不要使用前綴 _ .
  7. 儘可能在命名中使用整個單詞 .

組件

  1. 每個邏輯組件一個文件 (例如: parser, scanner, emitter, checker).
  2. 不要添加新文件. :)
  3. 帶有".generated.*"後綴的文件是自動生成的,不要手動去修改.

類型

  1. 除非您需要跨多個組件共享,否則不要導出類型/函數.
  2. 不要向全局命名空間引入新類型/值.
  3. 共享類型應在 types.ts 中定義.
  4. 在文件中,應首先輸入類型定義.

null 和 undefined

  1. 使用 undefined , 不要使用 null .

一般假設

  1. 將節點,符號等對象視為創建它們的組件之外的不可變對象。 不要改變它們。
  2. 創建後,默認情況下將數組視為不可變.

  1. 為保持一致性,請不要在核心編譯器管道中使用類。 請改用函數閉包.

標誌

  1. 應該將類型上超過2個相關的布爾屬性轉換為標誌。

註釋

  1. 對函數,接口,枚舉和類使用JSDoc樣式註釋。

字符串

  1. 使用雙引號.
  2. 用戶可見的所有字符串都需要進行本地化(在diagnosticMessages.json中創建一個條目)。

診斷信息

  1. 在句子末尾使用句號.
  2. 對不確定的實體使用不定的文章.
  3. 應該命名確定的實體(這是為變量名,類型名等等。).
  4. 在陳述規則時,主題應該是單數的 (e.g. "An external module cannot..." instead of "External modules cannot...").
  5. 使用現在時.

診斷消息代碼

診斷分為一般範圍。 如果添加新的診斷消息,請使用大於相應範圍中最後使用的數字的第一個整數。

  • 1000 句法消息的範圍
  • 2000 用於語義消息
  • 4000 用於聲明發出消息
  • 5000 用於編譯器選項消息
  • 6000 用於命令行編譯器消息
  • 7000 對於noImplicitAny消息

一般構造

出於各種原因,我們避免某些結構,並使用我們自己的一些結構。 其中:

  1. 不要使用 for..in 語句; 相反,使用 ts.forEach , ts.forEachKey 和 ts.forEachValue 。 請注意它們的語義略有不同。
  2. 當它不是非常不方便時,嘗試使用 ts.forEach , ts.map 和 ts.filter 而不是循環。

風格

  1. 使用箭頭函數而不是匿名函數。必要時僅限制環繞箭頭功能參數。例如, (x)=> x + x 錯誤,但以下是正確的:
  2. x => x + x
  3. (x,y) => x + y
  4. (x: T, y: T) => x === y
  5. 始終用花括號環繞循環和條件體。 允許在同一行上的語句省略大括號.
  6. 開放的花括號總是與任何必要條件都在同一條線上.
  7. 帶括號的構造應該沒有周圍的空格。單個空格在這些構造中使用逗號,冒號和分號。 例如:
  8. for (var i = 0, n = str.length; i < 10; i++) { }
  9. if (x < 10) { }
  10. function f(x: number, y: string): void { }
  11. 每個變量語句使用一個聲明
  12. (i.e. 使用var x = 1; var y = 2; 而不是 var x = 1, y = 2;).
  13. else 與閉合的大括號分開.
  14. 每個縮進使用4個空格.

原文地址: https://github.com/Microsoft/TypeScript/wiki/Coding-guidelines

總結

在實際開發過程中,可能有些編碼風格和文中的有不同,但只要風格統一就好。不要不同的風格混搭使用。

比如:

  1. 字符串不要一會使用單引號,一會使用雙引號
  2. 縮進有的文件使用2個空格,有的文件使用4個


分享到:


相關文章: