0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

前端框架Svelte放棄TypeScript,JS贏!

OSC開(kāi)源社區(qū) ? 來(lái)源:OSC開(kāi)源社區(qū) ? 2023-05-11 10:39 ? 次閱讀

根據(jù) Svelte repo 中"TS to JSDoc Conversion"PR 的描述,Svelte 團(tuán)隊(duì)將會(huì)從目前使用的 TypeScript 遷移到 JSDoc。

a8a01a30-ef56-11ed-90ce-dac502259ad0.jpg

前端 UI 框架 Svelte 創(chuàng)始人 Rich Harris 在推特的回復(fù)印證了這一消息。他表示這個(gè)決定沒(méi)有改變 Svelte 的類型安全。

a8cb3c38-ef56-11ed-90ce-dac502259ad0.png

負(fù)責(zé) Svelte 編譯器的開(kāi)發(fā)者則說(shuō)道,改用 JSDoc 后,代碼不需要編譯構(gòu)建即可進(jìn)行調(diào)試 —— 簡(jiǎn)化了編譯器的開(kāi)發(fā)工作。畢竟目前的調(diào)試工作比較復(fù)雜,需要使用構(gòu)建步驟進(jìn)行調(diào)試。 另外,使用 JSDoc 不會(huì)影響編譯器的開(kāi)發(fā)安全,因?yàn)樗念愋蛶缀醯韧?TypeScript,依然可以使用 tsc 編譯器檢查類型。

a8dd946e-ef56-11ed-90ce-dac502259ad0.png

當(dāng)然,Svelte 開(kāi)發(fā)者(不是編譯器開(kāi)發(fā)者)仍會(huì)像現(xiàn)在一樣獲得類型定義文件。因此對(duì)于 Svelte 開(kāi)發(fā)者來(lái)說(shuō),在類型方面不會(huì)有任何變化。 Svelte 不是第一個(gè)放棄 TypeScript 的前端框架。早在 2020 年,Deno就遷移了一部分內(nèi)部 TypeScript 代碼到 JavaScript,以減少構(gòu)建時(shí)間。當(dāng)時(shí)Deno 團(tuán)隊(duì)計(jì)劃刪除所有內(nèi)部代碼構(gòu)建時(shí)的 TS 類型檢查與捆綁。

a90453b0-ef56-11ed-90ce-dac502259ad0.png

對(duì)此,Deno 團(tuán)隊(duì)給出的理由是:

在變更文件時(shí),TypeScript 往往需要幾分鐘的編譯時(shí)間,這導(dǎo)致連續(xù)編譯過(guò)程變得非常緩慢;

在創(chuàng)建 Deno 可執(zhí)行文件以及面向用戶的 API 源文件時(shí),TypeScript 結(jié)構(gòu)會(huì)引發(fā)一系列運(yùn)行時(shí)性能問(wèn)題;

TypeScript 本身對(duì)于 Deno 代碼的組織工作毫無(wú)幫助,反而增強(qiáng)了代碼組織負(fù)擔(dān)。Deno 團(tuán)隊(duì)提出的一大現(xiàn)實(shí)問(wèn)題,是 TypeScript 會(huì)在兩個(gè)位置復(fù)制相互獨(dú)立的 Body 類,https://github.com/denoland/deno/issues/4748

由于 TypeScript 編譯器無(wú)法幫助開(kāi)發(fā)者生成 d.ts 文件,內(nèi)部代碼與運(yùn)行時(shí) TypeScript 聲明必須以手動(dòng)方式保持同步;

他們維護(hù)著兩臺(tái) TS 編譯器主機(jī):一臺(tái)用于內(nèi)部 Deno 代碼,另一臺(tái)用于外部用戶代碼,但二者的作用其實(shí)非常相似。

總結(jié)就是減少構(gòu)建時(shí)間、降低發(fā)布的代碼體積、減少編寫(xiě)的代碼量。 要注意的是,當(dāng)時(shí) Deno 僅在內(nèi)部代碼中停用 TypeScript,Deno 用戶代碼中的 TypeScript 部分仍將保留,類型檢查自然也將并存。 從這些案例可以看出,雖然 TypeScript 常被視為 JavaScript 的改進(jìn)版本,但問(wèn)題也許沒(méi)那么簡(jiǎn)單。與任何其他語(yǔ)言一樣,TypeScript 也有自己的缺陷。其最重要的問(wèn)題之一,在于緩慢的編譯速度。在從純 JavaScript 轉(zhuǎn)換至 TypeScript 時(shí),小型項(xiàng)目可能編譯變慢的問(wèn)題還不算嚴(yán)重,但大型項(xiàng)目(例如復(fù)雜的 React 應(yīng)用程序)則將深受其害。

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 前端
    +關(guān)注

    關(guān)注

    1

    文章

    201

    瀏覽量

    17876
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1643

    瀏覽量

    49345

原文標(biāo)題:前端框架Svelte放棄TypeScript,JS贏!

文章出處:【微信號(hào):OSC開(kāi)源社區(qū),微信公眾號(hào):OSC開(kāi)源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 0人收藏

    評(píng)論

    相關(guān)推薦

    熱門前端框架:引領(lǐng)現(xiàn)代 Web 開(kāi)發(fā)的潮流

    在當(dāng)今快速發(fā)展的前端開(kāi)發(fā)領(lǐng)域,熱門前端框架如 React、Vue 和 Angular 等,成為了開(kāi)發(fā)者構(gòu)建高效、高性能 Web 應(yīng)用的得力工具。它們各自具有獨(dú)特的特點(diǎn)和優(yōu)勢(shì),引領(lǐng)著現(xiàn)代 Web 開(kāi)發(fā)
    的頭像 發(fā)表于 01-22 10:08 ?122次閱讀

    簡(jiǎn)述大前端技術(shù)棧的渲染原理

    應(yīng)用開(kāi)發(fā):Android、iOS、鴻蒙(HarmonyOS)等; ?Web前端框架:Vue、React、Angular等; ?小程序開(kāi)發(fā):微信小程序、京東小程序、支付寶小程序等; ?跨平臺(tái)解決方案:React Native、Flutter、Taro、Weex等。 什么是渲
    的頭像 發(fā)表于 11-07 10:11 ?314次閱讀

    鴻蒙跨端實(shí)踐-JS虛擬機(jī)架構(gòu)實(shí)現(xiàn)

    在Roma跨端方案中,JS虛擬機(jī)是框架的核心,負(fù)責(zé)執(zhí)行動(dòng)態(tài)化的JS代碼。在Android平臺(tái)采用了基于V8的J2V8,iOS平臺(tái)則使用了系統(tǒng)自帶的JSCore,而在HarmonyOS中,由于業(yè)界無(wú)
    的頭像 發(fā)表于 09-30 14:42 ?2559次閱讀
    鴻蒙跨端實(shí)踐-<b class='flag-5'>JS</b>虛擬機(jī)架構(gòu)實(shí)現(xiàn)

    工程師必備!Node.js和常見(jiàn)管理工具介紹(附操作演示)

    在現(xiàn)代軟件開(kāi)發(fā)中,JavaScript已成為一種廣泛使用的編程語(yǔ)言,在web前端開(kāi)發(fā)、后端開(kāi)發(fā)、移動(dòng)應(yīng)用端開(kāi)發(fā)等領(lǐng)域中都有它的身影。在本文中,將從JavaScript語(yǔ)言為出發(fā)點(diǎn),揭示這一
    的頭像 發(fā)表于 08-30 12:34 ?373次閱讀
    工程師必備!Node.<b class='flag-5'>js</b>和常見(jiàn)管理工具介紹(附操作演示)

    bootstrap框架和vue框架的區(qū)別

    Bootstrap和Vue都是目前非常流行的前端開(kāi)發(fā)框架,它們各自具有獨(dú)特的優(yōu)勢(shì)和特點(diǎn)。 設(shè)計(jì)理念 Bootstrap是一個(gè)基于HTML、CSS和JavaScript的前端開(kāi)發(fā)框架,主
    的頭像 發(fā)表于 07-11 09:55 ?1022次閱讀

    bootstrap框架用什么軟件開(kāi)發(fā)

    Bootstrap是一個(gè)流行的前端框架,用于快速開(kāi)發(fā)響應(yīng)式和移動(dòng)優(yōu)先的Web應(yīng)用程序。它提供了一套預(yù)定義的CSS和JavaScript組件,使得開(kāi)發(fā)者可以快速構(gòu)建出漂亮的用戶界面
    的頭像 發(fā)表于 07-11 09:50 ?608次閱讀

    鴻蒙開(kāi)發(fā):【從TypeScript到ArkTS的適配規(guī)則】

    ArkTS通過(guò)規(guī)范約束了TypeScript(簡(jiǎn)稱TS)中過(guò)于靈活而影響開(kāi)發(fā)正確性或者給運(yùn)行時(shí)帶來(lái)不必要額外開(kāi)銷的特性
    的頭像 發(fā)表于 05-14 09:37 ?2235次閱讀
    鴻蒙開(kāi)發(fā):【從<b class='flag-5'>TypeScript</b>到ArkTS的適配規(guī)則】

    鴻蒙TypeScript學(xué)習(xí)21天:【聲明文件】

    TypeScript 作為 JavaScript 的超集,在開(kāi)發(fā)過(guò)程中不可避免要引用其他第三方的 JavaScript 的庫(kù)。
    的頭像 發(fā)表于 04-19 15:02 ?684次閱讀
    鴻蒙<b class='flag-5'>TypeScript</b>學(xué)習(xí)21天:【聲明文件】

    鴻蒙TypeScript學(xué)習(xí)第20天:【模塊】

    TypeScript 模塊的設(shè)計(jì)理念是可以更換的組織代碼。 模塊是在其自身的作用域里執(zhí)行,并不是在全局作用域,這意味著定義在模塊里面的變量、函數(shù)和類等在模塊外部是不可見(jiàn)的,除非明確地使用 export 導(dǎo)出它們。類似地,我們必須通過(guò) import 導(dǎo)入其他模塊導(dǎo)出的變量、函數(shù)、類等。
    的頭像 發(fā)表于 04-18 15:19 ?794次閱讀
    鴻蒙<b class='flag-5'>TypeScript</b>學(xué)習(xí)第20天:【模塊】

    鴻蒙語(yǔ)言TypeScript學(xué)習(xí)第16天:【類】

    TypeScript 支持面向?qū)ο蟮乃刑匦?,比?類、接口等。
    的頭像 發(fā)表于 04-15 09:29 ?1120次閱讀
    鴻蒙語(yǔ)言<b class='flag-5'>TypeScript</b>學(xué)習(xí)第16天:【類】

    鴻蒙TypeScript 開(kāi)發(fā)學(xué)習(xí)第9天:【TypeScript Number】

    TypeScript 與 JavaScript 類似,支持 Number 對(duì)象。 Number 對(duì)象是原始數(shù)值的包裝對(duì)象。
    的頭像 發(fā)表于 04-07 18:02 ?849次閱讀
    鴻蒙<b class='flag-5'>TypeScript</b> 開(kāi)發(fā)學(xué)習(xí)第9天:【<b class='flag-5'>TypeScript</b> Number】

    鴻蒙TypeScript入門學(xué)習(xí)第6天:【條件語(yǔ)句】

    條件語(yǔ)句用于基于不同的條件來(lái)執(zhí)行不同的動(dòng)作。 TypeScript 條件語(yǔ)句是通過(guò)一條或多條語(yǔ)句的執(zhí)行結(jié)果(True 或 False)來(lái)決定執(zhí)行的代碼塊。
    的頭像 發(fā)表于 04-01 13:51 ?811次閱讀
    鴻蒙<b class='flag-5'>TypeScript</b>入門學(xué)習(xí)第6天:【條件語(yǔ)句】

    鴻蒙TypeScript開(kāi)發(fā)入門學(xué)習(xí)第3天:【TS基礎(chǔ)類型】

    任意值是 TypeScript 針對(duì)編程時(shí)類型不明確的變量使用的一種數(shù)據(jù)類型,它常用于以下三種情況。
    的頭像 發(fā)表于 03-28 15:02 ?593次閱讀
    鴻蒙<b class='flag-5'>TypeScript</b>開(kāi)發(fā)入門學(xué)習(xí)第3天:【TS基礎(chǔ)類型】

    鴻蒙TypeScript入門學(xué)習(xí)第2天【TypeScript安裝】

    本文介紹 TypeScript 環(huán)境的安裝。 我們需要使用到 npm 工具安裝,如果你還不了解 npm,可以參考我之前文檔。
    的頭像 發(fā)表于 03-27 15:22 ?563次閱讀
    鴻蒙<b class='flag-5'>TypeScript</b>入門學(xué)習(xí)第2天【<b class='flag-5'>TypeScript</b>安裝】

    【鴻蒙】NAPI 框架生成工具實(shí)現(xiàn)流程

    NAPI 框架生成工具 可以根據(jù)用戶指定路徑下的 ts(typescript)接口文件一鍵生成 NAPI 框架代碼、業(yè)務(wù)代碼框架、GN 文件等。在開(kāi)發(fā)
    的頭像 發(fā)表于 02-28 17:00 ?753次閱讀
    【鴻蒙】NAPI <b class='flag-5'>框架</b>生成工具實(shí)現(xiàn)流程

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品