建議在 JavaScript 語言中添加帶有類型信息的語法

Microsoft、Igalia 和 Bloomberg 已主動將明確類型定義的語法納入 JavaScript 規範,類似於 TypeScript 語言中使用的語法。目前,提議納入 ECMAScript 標準的原型變更已提交進行初步討論(第 0 階段)。在 TC39 委員會 XNUMX 月的下一次會議上,計劃在 ECMA 專家群體的參與下進入該提案的第一階段審議。

明確指定類型資訊將使您可以在開發過程中避免許多錯誤,可以使用額外的最佳化技術,簡化偵錯,並使程式碼更具可讀性,更易於第三方開發人員修改和支援。建議將類型支援作為可選功能來實現 - 不支援類型檢查的 JavaScript 引擎和運行時將忽略帶有類型資訊的註釋,並像以前一樣處理程式碼,將類型資料視為註釋。但是類型檢查工具將能夠使用可用的資訊來識別與不正確使用類型相關的錯誤。

此外,與使用以註釋形式指定的 JSDoc 註釋指定的類型資訊相比,直接在變數定義建構中直接指示類型將使程式碼更直觀、更易於理解且更易於編輯。例如,支援 TypeScript 的 IDE 將能夠立即突出顯示類型化 JavaScript 程式碼中的錯誤,而無需進行額外的轉換。此外,內建類型支援將使運行用類型化 JavaScript 方言(例如 TypeScript 和 Flow)編寫的程式成為可能,而無需從一種語言轉譯為另一種語言。

建議在 JavaScript 語言中添加帶有類型信息的語法

在類型中,建議新增“string”、“number”和“boolean”,可在定義變數、函數參數、物件元素、類別欄位、類型化陣列(“number[]”)時使用。也建議提供對合併類型(“字串|數字”)和泛型的支援。讓x:字串;函數 add(a: 數字,b: 數字) { return a + b; } 介面 Person { 名稱:字串;年齡:數字; } 函數 foo(x: T) { 回傳 x;函數 foo(x: 字串 | 數字): 字串 |數字 { if (typeof x === number) { return x + 1 } else { return x + "!" } }

來源: opennet.ru

添加評論