<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          微軟提議對 JavaScript 進行重大修改:將添加類型標注(Type Annotations)

          共 1685字,需瀏覽 4分鐘

           ·

          2022-03-16 13:44

          技術編輯:MissD丨發(fā)自 思否編輯部

          公眾號:SegmentFault




          近日,微軟宣布了一個雄心勃勃的項目 —— 正在支持并合作一項初始“階段 0 ”的提案:將可選的 Type Annotations(類型標注)添加到官方 JavaScript 標準 ECMAScript 里面。



          據(jù)微軟官方信息顯示:“該提議旨在使開發(fā)人員能夠向 JavaScript 代碼中添加類型標注,允許 JavaScript 外部的類型檢查器檢查這些注釋,且在運行時,JavaScript 引擎會忽略它們,將類型視為標注。”

          以上提議的目的是讓開發(fā)者能夠在不進行任何編譯的情況下就能運行用 TypeScript、Flow 及其他靜態(tài)類型的 JavaScript “超集”編寫的程序(如果它們停留在語言的某個相當大的子集內(nèi)的話)。

          3 月 9 日,在 TypeScript 高級項目經(jīng)理、微軟 Daniel Rosenwasser 撰寫的一篇博客文章中,對以上提案進行了全面解釋。如果該提案繼續(xù)往前推進的話,可能需要數(shù)年時間。

          博文中解釋稱,此次提案與最近的趨勢有關,即更快的 JavaScript 迭代、更少的構建步驟,這些趨勢都正在使 JavaScript 編碼變得更快、更簡單。同時,這一趨勢也得到了現(xiàn)代 evergreen 瀏覽器的推動,這些瀏覽器通常不再要求開發(fā)人員編譯新版本的 JavaScript,以便在較舊的運行時上運行。

          正如前面的建議所指出的,本次提案中語法的作用類似于注釋,因此不會影響周圍代碼的運行方式。這一點在上面 Daniel Rosenwasser 的博文中也有所解釋:

          “這個提議的想法是,JavaScript 可以為引擎完全忽略的類型創(chuàng)建一組語法,但 TypeScript、Flow 等工具可以使用這些語法”,“這使我們能夠保留開發(fā)者喜歡的 TypeScript 的東西——它的類型檢查和編輯體驗,同時消除開發(fā)中構建步驟的需要。”

          在此次新方案中,當涉及到編寫和運行代碼時,開發(fā)人員的內(nèi)部循環(huán)如下圖所示:


          由于 JavaScript 的 type syntax 之前就已經(jīng)出現(xiàn)過,且開發(fā)人員對任何此類功能的工作方式都有許多不同的看法,因此許多細節(jié)還沒有具體化。

          對此,Daniel Rosenwasser 補充稱,至少需要為以下內(nèi)容添加語法:

          • 變量和函數(shù)的類型注釋
          • (可選)modifiers(?)參數(shù)和類成員
          • 類型聲明(接口和類型別名)
          • 類型斷言運算符(as和!)

          盡管可見性 modifiers 等其他構造(如 public、private 和 protected)也可能在范圍內(nèi),但 enums、 namespaces 及 parameter properties 等其他構造并不在范圍內(nèi),因為它們具有可觀察的運行時行為。

          Daniel Rosenwasser 表示,“這些功能可以根據(jù)反饋作為單獨的 ECMAScript 功能提出,但我們目前的目標是支持 TypeScript 的一些大子集,我們認為這些子集可能是 JavaScript 的一個有價值的補充。”

          據(jù)悉,該提案將在即將于 2022 年 3 月召開的 TC39(“指定 JavaScript”)全體會議上提出。


          TC39 是由 JavaScript 開發(fā)人員、實現(xiàn)人員、學者及相關人士共同組成的委員會,他們與社區(qū)合作維護和發(fā)展 JavaScript 的定義,希望從“第 0 階段”跳到“第 1 階段”。

          Rosenwasser 強調(diào)稱:“達到第 1 階段意味著標準委員會認為支持 type syntax 對于 ECMAScript 是值得考慮的”。“這并非一件肯定會引起轟動的事情,委員會內(nèi)部有許多有價值的觀點,我們確實希望會有一些懷疑。像這樣的提案會得到很多反饋和適當?shù)膶彶椋运赡軙婕昂芏嘣O計變更,可能需要數(shù)年才能產(chǎn)生結果。”

          “但如果我們完成這一切,我們就有機會對 JavaScript 世界做出最有影響力的改進之一。我們對此感到興奮,希望你們也感到興奮。”

          -?END -

          瀏覽 42
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  授乳奶水x88MAV | 撸久久| 怡红院一区二区三区 | 懂色青青草va | 全国极品999无码视频免费观看 |