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

    文章

    177

    浏览量

    17591
  • 编译器
    +关注

    关注

    1

    文章

    1577

    浏览量

    48644

原文标题:前端框架Svelte放弃TypeScript,JS赢!

文章出处:【微信号:OSC开源社区,微信公众号:OSC开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    鸿蒙语言TypeScript学习第16天:【类】

    TypeScript 支持面向对象的所有特性,比如 类、接口等。
    的头像 发表于 04-15 09:29 488次阅读
    鸿蒙语言<b class='flag-5'>TypeScript</b>学习第16天:【类】

    鸿蒙TypeScript 开发学习第9天:【TypeScript Number】

    TypeScript 与 JavaScript 类似,支持 Number 对象。 Number 对象是原始数值的包装对象。
    的头像 发表于 04-07 18:02 454次阅读
    鸿蒙<b class='flag-5'>TypeScript</b> 开发学习第9天:【<b class='flag-5'>TypeScript</b> Number】

    鸿蒙TypeScript入门学习第6天:【条件语句】

    条件语句用于基于不同的条件来执行不同的动作。 TypeScript 条件语句是通过一条或多条语句的执行结果(True 或 False)来决定执行的代码块。
    的头像 发表于 04-01 13:51 441次阅读
    鸿蒙<b class='flag-5'>TypeScript</b>入门学习第6天:【条件语句】

    鸿蒙TypeScript入门学习第2天【TypeScript安装】

    本文介绍 TypeScript 环境的安装。 我们需要使用到 npm 工具安装,如果你还不了解 npm,可以参考我之前文档。
    的头像 发表于 03-27 15:22 198次阅读
    鸿蒙<b class='flag-5'>TypeScript</b>入门学习第2天【<b class='flag-5'>TypeScript</b>安装】

    【鸿蒙】NAPI 框架生成工具实现流程

    NAPI 框架生成工具 可以根据用户指定路径下的 ts(typescript)接口文件一键生成 NAPI 框架代码、业务代码框架、GN 文件等。在开发
    的头像 发表于 02-28 17:00 260次阅读
    【鸿蒙】NAPI <b class='flag-5'>框架</b>生成工具实现流程

    什么是LlamaIndex?LlamaIndex数据框架的特点和功能

    LlamaIndex是一个数据框架,用于让基于LLM的应用程序摄取、结构化和访问私有或领域特定的数据。它提供Python和Typescript版本。
    的头像 发表于 01-05 11:08 4166次阅读
    什么是LlamaIndex?LlamaIndex数据<b class='flag-5'>框架</b>的特点和功能

    【坚果派】JS开源库适配OpenHarmony系列——第一期实操

    由于OpenHarmony应用是基于ArkTS开发,而ArkTS是在保持TypeScript(简称TS)基础语法风格的基础上,对TS的动态类型特性施加更严格的约束,引入静态类型。因此在开发OpenHarmony三方库时,建议首选在成熟的JS/TS开源三方库上开发。
    的头像 发表于 12-26 10:48 514次阅读
    【坚果派】<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 753次阅读

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

    C# 和 TypeScript 之父 Anders Hejlsberg 今天宣布了全新的开源项目 ——TypeChat,它通过 AI 在自然语言和应用程序模式 (application schema),以及 API 之间构建了一座 “桥梁”,能用新颖有趣的方式使用 TypeScr
    的头像 发表于 07-24 09:27 586次阅读
    <b class='flag-5'>TypeScript</b>之父也搞大模型:推出TypeChat

    前端UI框架Svelte 4正式发布

    对于第一次在 learn.svelte.dev 上加载交互式学习体验的用户、Svelte REPL 的用户以及网络条件有限的用户来说,这一改进将尤为明显。剩下的大部分软件包大小是对 eslint
    的头像 发表于 06-25 15:44 388次阅读
    <b class='flag-5'>前端</b>UI<b class='flag-5'>框架</b><b class='flag-5'>Svelte</b> 4正式发布

    腾讯开源的前端框架介绍

      今天推荐两个腾讯开源的前端框架,分别是 wujie(无界)和 Omi。 wujie(无界) 无界微前端是一款基于 Web Components + iframe 微前端
    的头像 发表于 06-17 14:44 1398次阅读
    腾讯开源的<b class='flag-5'>前端</b><b class='flag-5'>框架</b>介绍

    你们知道前端大神是怎么学CSS的嘛

    有人说,要成为前端高手很容易:先学好 HTML/CSS/JavaScript 三剑客,再学会三大前端框架——Vue/React/Angular,快则三个月,慢则半年,前端的工作就没有搞
    的头像 发表于 05-30 11:26 413次阅读

    python爬虫之某站JS加密逆向分析

    实现的目标:可以通过JS加密逆向后,得到加密参数,请求获取数据。此方法同样适用于被前端JS加密的用户名、密码爆破。
    的头像 发表于 05-05 15:40 918次阅读
    python爬虫之某站<b class='flag-5'>JS</b>加密逆向分析