精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

原生JS也要支持類型注解啦?

開發 前端
在布達佩斯2022 JSConf會議上,tc39(ES標準委員會)成員「Gil Tayar」介紹了一份當前仍處于stage 1階段的提案 —— Type Annotations,意在讓原生JS支持類型注解。

大家好,我卡頌。

在布達佩斯2022 JSConf[1]會議上,tc39[2](ES標準委員會)成員「Gil Tayar」介紹了一份當前仍處于stage 1?階段的提案 —— Type Annotations?,意在讓原生JS支持類型注解。

圖片

Gil Tayar

換句話說,如果提案通過,很多.ts?文件將后綴改為.js后就能直接在瀏覽器中運行。

一份tc39提案通常會經歷5個階段:

  • stage 0:被提出。
  • stage 1:接受審議。
  • stage 2:規范基本完成。
  • stage 3:等待被實現。
  • stage 4:納入語言標準中。

所以Type Annotations當前仍處于「接受審議」的狀態。

但是提案發起者「Gil Tayar」對這份提案的通過很有信心,本文我們來聊聊這份提案的相關內容。

為什么需要原生類型注解?

根據20年、21年state of JS[3]的統計,「靜態類型」高票當選「JS中當前最欠缺的功能」。

圖片

同時,在Github報告[4]中,TS被列為「第四大最常用的語言」

所以,對前端工程師來說,「類型注解」需求很大。

那么,既然已經有了TS?,為什么還需要原生JS支持「類型注解」呢?

通常來說,從「開發者編寫的源代碼」到「線上生產環境代碼」間需要經過「代碼編譯」。

「代碼編譯」主要包括兩個步驟:

  1. 降級編譯(包括高級語法轉換為低級語法,高級方法的polyfill)。
  2. 代碼轉譯(比如壓縮、混淆、tree-shaking、類型擦除)。

所謂「類型擦除」,是指擦除代碼中的「類型注解」,讓其變成符合原生JS規范的代碼,比如:

// 擦除前
function add(a: number, b: number): number {
return a + b;
}
// 擦除后
function add(a, b) {
return a + b;
}

隨著時間的推移,各主流瀏覽器兼容性越來越好,「步驟1」在可預見的未來重要性會逐漸降低。

對于TS開發者,從「源代碼」到「線上生產環境代碼」間可能只需要「類型擦除」。

如果原生JS支持「類型注解」,就能省去「類型擦除」對應的編譯流程,讓代碼更容易在宿主環境執行。

和TS的關系

這份提案的目的,并不是另起爐灶,獨立實現一套原生??JS??的類型注解。而是與「TS團隊」合作,提出一套合適的規范。

新的規范與「TS規范」的關系類似下圖:

圖片

一方面,Type Annotations?提案從TS中借鑒了很多特性,這就是圖中相交的部分。

你可以到grammar-conventions[5]看到規范當前定義的類型

另一方面,TS?迭代速度很快,新的特性產出很快。而Type Annotations?作為JS?語言的一部分,迭代會更加保守,所以TS?中一些特性在Type Annotations中并不支持。

此外,TS?中一些結構(比如Enums?、Namespaces?)存在運行時的語義,Type Annotations也不會支持。

這些就是TS?中存在,而Type Annotations中不存在的部分。

最后,Type Annotations?設計的初衷并不是與TS?強綁定,而僅僅是提供一套類型規范,開發者編寫代碼時的「類型檢查」還是由各種類型檢查器(比如TS?、Flow)實現。

所以,Type Annotations?還有一部分特性是TS?當前未定義的,這也是為了規范更廣泛的適用性考慮的,也就是圖中Type Annotations?存在,而TS不存在的部分。

這部分特性需要TS?后續實現,這也是為什么Type Annotations?要與TS團隊合作的一大原因。

對開發者意味著什么

如果Type Annotations最終出現在ES20xx版中,屆時開發者編寫代碼的步驟是:

  1. 選擇合適的類型檢查器(比如TS),這個類型檢查器需要完全遵循Type Annotations規范(而不是自己的規范,比如TS規范)。
  2. 編寫帶類型聲明的原生JS代碼。
  3. 類型檢查器會檢查類型錯誤,并給予報錯或提示。

對于如下原生JS代碼,如果開發者傳入了錯誤的類型,JS會報錯么?

function add(a: number, b: number): number {
return a + b;
}
// 錯誤的類型傳參
add('KaSong', 123);

答案是:不會。

Type Annotations僅僅是一套規范,該規范由各種類型檢查器執行。

JS的宿主環境(比如瀏覽器)在執行「帶類型聲明的JS代碼」時,會忽略類型聲明。

總結

有同學可能會問:就為了減少編譯時「類型擦除」這一步,就提出原生類型規范,有必要么?

甚至當Type Annotations落地后,開發者上線前在進行代碼壓縮時,「類型擦除」也會作為「代碼壓縮」的職責之一。

從這個角度看,甚至沒有減少編譯時的工作量。

所以提出原生的類型規范,有必要么?

前端的發展實際是一個「努力去編譯時流程」的過程。

比如,編譯時代碼需要降級,需要polyfill??隨著IE11?停止服務,主流瀏覽器紛紛跟進標準落地,降級與polyfill的需求逐漸變少。

再比如,代碼需要打包?隨著ESM?規范落地,在當前,至少在開發環境中代碼已經不需要打包(使用Vite)。

Type Annotations的出現,就是遵循「努力去編譯時流程」這一趨勢的產物。

從這個角度看,還是很有必要的。

參考資料

[1]布達佩斯2022 JSConf:https://www.youtube.com/watch?v=SdV9Xy0E4CM&list=PL37ZVnwpeshGuMZrOZzEo8QLBjjpbtBGm&index=2。

[2]tc39:https://github.com/tc39。

[3]state of JS:https://stateofjs.com/en-us/。

[4]Github報告:https://octoverse.github.com/。

[5]grammar-conventions:https://tc39.es/proposal-type-annotations/grammar.html#grammar-conventions。

責任編輯:姜華 來源: 魔術師卡頌
相關推薦

2023-08-29 09:43:21

Node.js.env

2020-12-10 08:21:27

XML映射Mybatis

2021-02-05 08:18:29

JavaScript開發代碼

2021-01-13 15:19:27

Python中文變量

2020-11-09 14:41:58

iOS 14.2蘋果JIT

2015-04-15 13:33:23

2009-06-03 08:50:03

微軟Windows 7操作系統

2022-04-06 08:19:13

Go語言切片

2010-08-23 09:23:49

Windows Pho

2022-04-21 07:52:08

JS線程GUI渲染

2013-12-24 09:38:50

asm.jsJavascript

2021-11-09 11:56:25

模式數組排序

2017-08-08 11:18:26

AndroidIntent原生

2009-02-27 09:41:15

Windows 7微軟mov文件

2023-09-21 10:09:10

JavaScript數組分組

2024-01-08 09:28:20

2025-09-24 08:57:13

AI開源模型

2025-07-29 00:00:00

2012-05-02 13:53:00

JavaScript

2024-01-03 13:39:00

JS,Javascrip算法
點贊
收藏

51CTO技術棧公眾號

亚洲黄一区二区| 91视频91自| 在线观看日韩视频| 日韩av成人网| 另类图片综合电影| 亚洲色图另类专区| 欧美精品亚洲| 精品久久久久成人码免费动漫| 亚洲日本免费| 日韩亚洲欧美中文在线| 最新中文字幕日本| 成人自拍av| 亚洲国产精品一区二区久久 | 美女诱惑一区二区| 日韩天堂在线视频| 欧美丰满少妇人妻精品| 亚洲国产aⅴ精品一区二区三区| 樱花草国产18久久久久| 台湾成人av| 天堂网在线资源| 韩国毛片一区二区三区| 国产999在线观看| 国内偷拍精品视频| 久久免费大视频| 亚洲美女视频网站| 娇妻高潮浓精白浆xxⅹ| 午夜精品久久久久久毛片| 狠狠躁夜夜躁久久躁别揉| 9191国产视频| av电影免费在线观看| 国产亚洲婷婷免费| 欧美日韩精品免费看| 亚洲国产精品欧美久久| 精品影院一区二区久久久| 日韩av观看网址| 久热这里只有精品6| 欧美三区在线| 欧美日韩成人在线观看| 91麻豆免费视频网站| 欧美一级淫片| 国产亚洲欧洲在线| 亚洲av无码一区二区三区人 | 国产大陆精品国产| 成人网在线免费看| 国产又粗又长又黄| 九九热在线视频观看这里只有精品| 国产成人啪精品视频免费网| 久久久久久久极品| 性娇小13――14欧美| 97av在线影院| 男人的天堂一区二区| 亚洲国产午夜| 77777亚洲午夜久久多人| 久久精品视频久久| 亚洲国产一区二区三区a毛片| 欧美激情一区二区三区成人| 久一区二区三区| 激情欧美亚洲| 2023亚洲男人天堂| 日本天堂网在线| 狂野欧美一区| 国产精品免费网站| 国产人妖一区二区| 国产精品 欧美精品| 99久热re在线精品996热视频| 精品欧美一区二区精品少妇| 国产成人av一区二区| 国产精品国产精品国产专区蜜臀ah| 精品黑人一区二区三区在线观看 | 日韩免费成人av| 成人精品亚洲| 久久精品中文字幕一区| 久久国产免费观看| 一区二区三区福利| 国产精品91在线| 在线视频播放大全| 国产成人综合亚洲网站| 精品九九九九| av天在线观看| 一区二区三区在线看| 久激情内射婷内射蜜桃| 性欧美gay| 欧美老女人第四色| 制服丝袜av在线| 伊人久久大香线蕉综合网站| 综合网中文字幕| 亚洲不卡在线播放| 制服诱惑一区二区| 国产日韩欧美影视| 黄色片一区二区| 国产农村妇女毛片精品久久麻豆 | 九九国产精品视频| 动漫美女被爆操久久久| 黄色视屏网站在线免费观看| 国产精品伦理在线| 少妇大叫太大太粗太爽了a片小说| 激情国产在线| 欧美久久久久久蜜桃| 在线免费看黄色片| 日韩理论在线| 国内免费久久久久久久久久久| 国模私拍一区二区| 成人免费观看男女羞羞视频| 视频一区二区三| 俄罗斯一级**毛片在线播放| 欧美日韩在线三区| 国产精品一级黄片| 91视频这里只有精品| 91这里只有精品| 性做久久久久久免费观看欧美| 美女喷白浆视频| 欧美成人基地| 久久在线免费视频| 日批视频免费在线观看| 成人激情综合网站| 中文字幕第50页| 日韩精品一区二区三区av| 精品99久久久久久| 国产suv精品一区二区68| 美女国产精品| 精品久久精品久久| 特级毛片在线| 欧美精品久久99久久在免费线 | 国产极品久久久| 国产欧美日韩麻豆91| 青青草国产精品视频| 精品国产三级| www.亚洲成人| 中文字幕二区三区| 国产欧美日韩不卡免费| 那种视频在线观看| 欧美精品中文| 韩国精品久久久999| 999久久久久久| 国产精品美女久久久久久久网站| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 中文字幕一区二区三区日韩精品 | 欧美一区二区三区电影在线观看 | 日韩欧美aaa| 男人女人拔萝卜视频| 国产精品久久久久久| 国产精品久久一区| 国产小视频免费在线网址| 精品日本美女福利在线观看| 中文字幕天堂网| 最新成人av网站| 黄色国产精品一区二区三区| 黄页在线观看免费| 精品第一国产综合精品aⅴ| 欧美日韩在线观看成人| 国产精品一级黄| 大荫蒂性生交片| 国产精品毛片av| 韩国精品久久久999| 十八禁一区二区三区| 亚洲成人自拍网| 亚洲av无码一区二区三区观看| 国产精品日韩| 日本一区高清不卡| 第四色男人最爱上成人网| 亚洲午夜激情免费视频| 无码久久精品国产亚洲av影片| 久久精品视频免费| 亚洲色图 在线视频| 日韩精品水蜜桃| 亚洲最大福利视频| 韩国成人免费视频| 日韩av在线天堂网| 在线免费观看国产精品| 国产精品色在线| 91性高潮久久久久久久| 亚洲网站在线| 欧美精品一区在线发布| 成人午夜亚洲| 欧美黑人视频一区| 天堂av网在线| 欧美日韩免费不卡视频一区二区三区 | 一本色道久久综合狠狠躁的番外| 国产精品电影网站| a级网站在线播放| 亚洲精品久久久久中文字幕欢迎你 | 国产成人精品无码片区在线| 日韩精品一二三四| 影音先锋成人资源网站| 色婷婷av一区二区三区丝袜美腿| 国产精品露脸自拍| 国产经典三级在线| 在线观看视频亚洲| 开心激情综合网| 欧美午夜在线观看| 国产精彩视频在线观看| 中文字幕电影一区| 中国xxxx性xxxx产国| 另类综合日韩欧美亚洲| 激情伊人五月天| 欧美肥老太太性生活| 国产在线精品日韩| 亚洲毛片在线免费| 欧美在线视频网| 影音先锋在线视频| 在线观看亚洲视频| 台湾av在线二三区观看| 欧美一区二区三区色| 日韩在线 中文字幕| 一区二区三区在线免费观看| 国产成人三级视频| 无码人妻精品一区二区三区不卡| 欧美国产精品中文字幕| 国产免费无码一区二区| 日韩av一区二区三区| 欧美精品九九久久| 国产专区第一页| 国产精品久久久久7777按摩| 在线天堂www在线国语对白| 国产黄大片在线观看画质优化| 欧美电影一区二区三区| yjizz国产| 亚洲永久精品国产| 青青青视频在线免费观看| 26uuu色噜噜精品一区二区| 在线播放国产视频| 亚洲天堂久久久久久久| 欧美日韩二三区| 亚洲精品成人无限看| 欧美h视频在线| 成功精品影院| 亚洲自拍偷拍欧美| 国产人与禽zoz0性伦| 久久亚洲精精品中文字幕早川悠里 | 夜夜嗨av一区二区三区网站四季av| 一区二区三区av电影| 国产欧美日韩丝袜精品一区| 美女露胸视频在线观看| 欧美裸体男粗大视频在线观看| 国产精品色视频| 18精品爽视频在线观看| 黄色亚洲精品| 中国老女人av| 999视频精品| 亚洲成人网上| 国产情侣免费视频| 色综合天天综合在线视频| 91看片在线播放| 午夜精品在线看| 国产成人无码精品久久久久| 亚洲成av人片一区二区| 日本少妇裸体做爰| 性欧美大战久久久久久久久| 国产精品9191| 欧美日韩国产精品一区| 久久不卡免费视频| 欧美视频专区一二在线观看| 国产精品久久久久久99| 日韩欧美大尺度| 毛片在线免费播放| 欧美日韩成人在线一区| 国产精品无码久久av| 91精品国产综合久久香蕉麻豆| 国产精品欧美激情在线| 欧美va亚洲va在线观看蝴蝶网| 亚洲毛片在线播放| 日韩av影视在线| 色鬼7777久久| 一区二区国产精品视频| 麻豆传媒免费在线观看| 欧美人与性动交a欧美精品| 18aaaa精品欧美大片h| 欧美综合在线观看| 日本成人伦理电影| 91手机在线播放| 精品国产18久久久久久洗澡| 免费不卡亚洲欧美| 日韩精品诱惑一区?区三区| 日本一道在线观看| 一区二区毛片| 污网站在线免费| 国产精品18hdxxxⅹ在线| 亚洲国产天堂网精品网站| 午夜在线视频免费| 一区二区三区黄色| 黄色片免费在线观看| 丝袜亚洲另类丝袜在线| 波多野结衣作品集| 九一久久久久久| 人妻无码中文久久久久专区| 国产亚洲短视频| 国产女片a归国片aa| 欧美日韩国产精品专区| 伊人免费在线观看| 精品1区2区在线观看| 国产毛片在线看| 欧美日韩国产第一页| 日韩a**中文字幕| αv一区二区三区| 日本不卡二三区| 麻豆tv在线播放| 精品一区二区三区在线观看 | 奇米精品一区二区三区在线观看一| 99国精产品一二二线| 青青一区二区| 一区二区三区四区免费观看| 亚洲一区二区三区高清| 亚洲av无日韩毛片久久| 国产精品久久免费视频| 成人欧美一区二区三区视频xxx| 免费久久精品| av片在线免费| 蜜臀精品一区二区三区在线观看 | 香蕉影院在线观看| 欧美精品丝袜中出| 你懂的在线播放| 欧美激情一区二区三区高清视频 | 一区在线播放视频| 日本中文字幕免费观看| 91精品欧美福利在线观看| 黄色免费在线播放| 国内精品模特av私拍在线观看| 国产精品一区二区三区四区在线观看| 欧美人与物videos另类| 精品福利电影| 免费黄视频在线观看| 国产精品高潮呻吟| 成人a v视频| 日韩大片免费观看视频播放| 亚洲小说区图片| 亚洲曰本av电影| 91成人精品| 日本美女视频一区| 国产精品色呦呦| 在线观看黄色网| 中文字幕欧美日韩精品| 在线免费日韩片| 精品免费视频123区| 午夜精品偷拍| 久久久久久国产精品日本| 国产精品理论片在线观看| 最近中文字幕在线免费观看| 亚洲欧洲免费视频| 韩国成人动漫| 欧美成ee人免费视频| 性高湖久久久久久久久| 无遮挡aaaaa大片免费看| 狠狠躁夜夜躁人人爽天天天天97| 天天av天天翘| 欧美在线激情视频| 亚洲国产精品嫩草影院久久av| 动漫av网站免费观看| 久久色成人在线| 久久久精品毛片| 在线精品播放av| 久久亚洲精品人成综合网| 中文字幕中文字幕一区三区| 精品一区中文字幕| 免费在线观看国产精品| 日韩精品一区二区三区在线| 日本乱理伦在线| 狠狠色噜噜狠狠狠狠色吗综合| 性一交一乱一区二区洋洋av| 久久久久久久久久久久久久久| 欧美主播一区二区三区| 日本在线观看| ts人妖另类在线| 久久久水蜜桃av免费网站| 久久久久久国产精品无码| 欧美少妇xxx| 亚洲丝袜精品| 看高清中日韩色视频| 日韩va亚洲va欧美va久久| 国产黄a三级三级| 欧美xxxxxxxx| 色尼玛亚洲综合影院| 一区二区不卡视频| 成人手机在线视频| 日韩在线视频不卡| 久久国产精品久久久久久久久久| 91蜜桃臀久久一区二区| 青青在线视频免费| 亚洲精品视频在线观看网站| 五月婷婷六月激情| 国产精品久在线观看| 欧美日韩专区| 午夜时刻免费入口| 日韩精品一区二| 日韩经典一区| wwwwww欧美| 久久久99精品久久| 精品人妻久久久久一区二区三区| 国产91精品久久久久久久| 手机在线电影一区| 捆绑裸体绳奴bdsm亚洲| 欧美人与性动xxxx| 绿色成人影院| 青青草免费在线视频观看| 91麻豆文化传媒在线观看| 国产女人18毛片水18精| 日韩美女主播视频| 欧美日韩视频| 三级黄色录像视频| 亚洲欧美国内爽妇网| 一区二区三区欧洲区|