<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

OSC開源社區 ? 來源:OSC開源社區 ? 2023-05-11 10:39 ? 次閱讀

根據 Svelte repo 中"TS to JSDoc Conversion"PR 的描述,Svelte 團隊將會從目前使用的 TypeScript 遷移到 JSDoc。

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

前端 UI 框架 Svelte 創始人 Rich Harris 在推特的回復印證了這一消息。他表示這個決定沒有改變 Svelte 的類型安全。

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

負責 Svelte 編譯器的開發者則說道,改用 JSDoc 后,代碼不需要編譯構建即可進行調試 —— 簡化了編譯器的開發工作。畢竟目前的調試工作比較復雜,需要使用構建步驟進行調試。 另外,使用 JSDoc 不會影響編譯器的開發安全,因為它的類型幾乎等同于 TypeScript,依然可以使用 tsc 編譯器檢查類型。

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

當然,Svelte 開發者(不是編譯器開發者)仍會像現在一樣獲得類型定義文件。因此對于 Svelte 開發者來說,在類型方面不會有任何變化。 Svelte 不是第一個放棄 TypeScript 的前端框架。早在 2020 年,Deno就遷移了一部分內部 TypeScript 代碼到 JavaScript,以減少構建時間。當時Deno 團隊計劃刪除所有內部代碼構建時的 TS 類型檢查與捆綁。

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

對此,Deno 團隊給出的理由是:

在變更文件時,TypeScript 往往需要幾分鐘的編譯時間,這導致連續編譯過程變得非常緩慢;

在創建 Deno 可執行文件以及面向用戶的 API 源文件時,TypeScript 結構會引發一系列運行時性能問題;

TypeScript 本身對于 Deno 代碼的組織工作毫無幫助,反而增強了代碼組織負擔。Deno 團隊提出的一大現實問題,是 TypeScript 會在兩個位置復制相互獨立的 Body 類,https://github.com/denoland/deno/issues/4748

由于 TypeScript 編譯器無法幫助開發者生成 d.ts 文件,內部代碼與運行時 TypeScript 聲明必須以手動方式保持同步;

他們維護著兩臺 TS 編譯器主機:一臺用于內部 Deno 代碼,另一臺用于外部用戶代碼,但二者的作用其實非常相似。

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

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 前端
    +關注

    關注

    1

    文章

    179

    瀏覽量

    17645
  • 編譯器
    +關注

    關注

    1

    文章

    1586

    瀏覽量

    48779

原文標題:前端框架Svelte放棄TypeScript,JS贏!

文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    鴻蒙開發:【從TypeScript到ArkTS的適配規則】

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

    鴻蒙TypeScript學習21天:【聲明文件】

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

    鴻蒙語言TypeScript學習第16天:【類】

    TypeScript 支持面向對象的所有特性,比如 類、接口等。
    的頭像 發表于 04-15 09:29 ?569次閱讀
    鴻蒙語言<b class='flag-5'>TypeScript</b>學習第16天:【類】

    鴻蒙TypeScript 開發學習第9天:【TypeScript Number】

    TypeScript 與 JavaScript 類似,支持 Number 對象。 Number 對象是原始數值的包裝對象。
    的頭像 發表于 04-07 18:02 ?522次閱讀
    鴻蒙<b class='flag-5'>TypeScript</b> 開發學習第9天:【<b class='flag-5'>TypeScript</b> Number】

    鴻蒙TypeScript入門學習第6天:【條件語句】

    條件語句用于基于不同的條件來執行不同的動作。 TypeScript 條件語句是通過一條或多條語句的執行結果(True 或 False)來決定執行的代碼塊。
    的頭像 發表于 04-01 13:51 ?496次閱讀
    鴻蒙<b class='flag-5'>TypeScript</b>入門學習第6天:【條件語句】

    鴻蒙TypeScript開發入門學習第3天:【TS基礎類型】

    任意值是 TypeScript 針對編程時類型不明確的變量使用的一種數據類型,它常用于以下三種情況。
    的頭像 發表于 03-28 15:02 ?201次閱讀
    鴻蒙<b class='flag-5'>TypeScript</b>開發入門學習第3天:【TS基礎類型】

    鴻蒙TypeScript入門學習第2天【TypeScript安裝】

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

    【鴻蒙】NAPI 框架生成工具實現流程

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

    什么是LlamaIndex?LlamaIndex數據框架的特點和功能

    LlamaIndex是一個數據框架,用于讓基于LLM的應用程序攝取、結構化和訪問私有或領域特定的數據。它提供Python和Typescript版本。
    的頭像 發表于 01-05 11:08 ?6135次閱讀
    什么是LlamaIndex?LlamaIndex數據<b class='flag-5'>框架</b>的特點和功能

    【堅果派】JS開源庫適配OpenHarmony系列——第一期實操

    由于OpenHarmony應用是基于ArkTS開發,而ArkTS是在保持TypeScript(簡稱TS)基礎語法風格的基礎上,對TS的動態類型特性施加更嚴格的約束,引入靜態類型。因此在開發OpenHarmony三方庫時,建議首選在成熟的JS/TS開源三方庫上開發。
    的頭像 發表于 12-26 10:48 ?567次閱讀
    【堅果派】<b class='flag-5'>JS</b>開源庫適配OpenHarmony系列——第一期實操

    OpenHarmony之NAPI框架介紹

    戶調用了 NAPI 接口 napi_create_int64(), 對于 Nodejs 而言,它會去訪問 V8 引擎的 api 創建一個 js 的數字變量,而對于 OpenHarmony,則是去訪問 ArkUI 框架
    發表于 11-23 15:36

    面向萬物智聯的應用框架的思考與探索

    領域。 近十年來,業界UI編程框架圍繞著更好的開發效率,更好的運行體驗以及適應更多的平臺不斷發展演進。其中有三個關鍵的時間節點:1.2013年,Facebook發布的React.js第一次綜合的將
    發表于 08-08 17:04

    【開源三方庫】Aki:一行代碼極簡體驗JS&C++跨語言交互

    “OpenHarmony”)的前端開發語言是ArkTS,在TypeScript(簡稱TS)生態基礎上做了進一步擴展,繼承了TS的所有特性,是JavaScript(簡稱JS)的超集。而Node-API
    的頭像 發表于 08-02 21:05 ?825次閱讀

    TypeScript之父也搞大模型:推出TypeChat

    C# 和 TypeScript 之父 Anders Hejlsberg 今天宣布了全新的開源項目 ——TypeChat,它通過 AI 在自然語言和應用程序模式 (application schema),以及 API 之間構建了一座 “橋梁”,能用新穎有趣的方式使用 TypeScr
    的頭像 發表于 07-24 09:27 ?639次閱讀
    <b class='flag-5'>TypeScript</b>之父也搞大模型:推出TypeChat

    前端UI框架Svelte 4正式發布

    對于第一次在 learn.svelte.dev 上加載交互式學習體驗的用戶、Svelte REPL 的用戶以及網絡條件有限的用戶來說,這一改進將尤為明顯。剩下的大部分軟件包大小是對 eslint
    的頭像 發表于 06-25 15:44 ?453次閱讀
    <b class='flag-5'>前端</b>UI<b class='flag-5'>框架</b><b class='flag-5'>Svelte</b> 4正式發布
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>