Node.js 添加对 TypeScript 的实验性支持

简介: Node.js 添加对 TypeScript 的实验性支持

在今天早些时候合并的一个 PR 中,Node.js添加了对 TypeScript的实验性支持。初始实现通过设置实验性标志 --experimental-strip-types 来执行 TypeScript 文件。
Node.js TSC 代表 Marco Ippolito 在添加实验性支持的 PR 中表示:“Node.js 将 TypeScript 源代码转换为 JavaScript 源代码。在转换过程中,不进行类型检查,类型被丢弃。”

“我认为使用户能够执行 TypeScript文件对于推动生态系统向前发展至关重要,这在所有调查中都被提到,并且不能被忽视。我们必须承认,用户希望在不安装外部依赖或加载器的情况下运行 node foo.ts。”

如果您正在运行最新的Nightly版本 Node,可以立即体验,或者在 CodeSandbox 上试用。
Ippolito 还发布了一个关于实验性 TypeScript 支持的路线图,概述了当前的限制:

不支持需要转换的 TypeScript 特性(枚举、命名空间等)。
.ts 文件不能使用 .js 扩展名。
不支持在 node_modules 中运行 TypeScript。
没有源映射,但由于我们执行空白处理(用空白替换删除的代码),所以不需要。
他还解释了选择 @swc/wasm-typescript 进行实现的原因:

简单性。
我考虑过其他工具,但它们需要将 rust 或 go 添加到工具链中。
@swc/wasm-typescript 是一个小包,包含一个 wasm 和一个 js 文件来绑定它。
Swc 目前被 Deno 用于同样的目的,已经过实际测试。
我预计未来会在本地层实现这一点。
TypeScript 支持的下一步
路线图中规划了项目在扩大支持过程中的几个演进步骤。第二步是解耦 TypeScript 转译器,使其可以像npm一样单独升级。之后,贡献者们旨在支持需要转换的TypeScript特性,并考虑 Node.js 是否应该在 node_modules 内运行 TypeScript文件的问题。

Ippolito 概述了第三步,重点是优化 Node和 SWC 之间的交互,使其高效运行,而不会影响 Node 的构建过程。

“这是我们衡量性能并使其在生产中可用而不带来性能损失的阶段,”他说。

第四步是添加更多核心中未使用但能减轻用户痛苦的功能。

今天合并的 PR是该功能的一个非常早期的实现,但社区的反应极为积极,清楚地表明了这一需求。

许多人还评论了 Bun 和 Deno 在推动Node中 TypeScript 支持方面的竞争重要性。这表明人们越来越认识到 TypeScript在现代开发中的重要性。即使在其初期阶段,Node.js对TypeScript 支持的承诺也表明,Node.js 的贡献者致力于保持相关性,并响应开发者社区不断发展的需求。

目录
相关文章
|
2月前
|
JavaScript 前端开发 IDE
TypeScript vs. JavaScript:技术对比与核心差异解析
TypeScript 作为 JavaScript 的超集,通过静态类型系统、编译时错误检测和强大的工具链支持,显著提升代码质量与可维护性,尤其适用于中大型项目和团队协作。相较之下,JavaScript 更灵活,适合快速原型开发。本文从类型系统、错误检测、工具支持等多维度对比两者差异,并提供技术选型建议,助力开发者合理选择。
639 1
|
JavaScript 前端开发 安全
探索Deno:新一代JavaScript/TypeScript运行时
Deno是由Node.js创始人Ryan Dahl发起的新一代JavaScript/TypeScript运行时,旨在提升安全性、模块化和性能。本文介绍了Deno的核心特性,如内置TypeScript支持、强大的模块系统、权限管理和测试工具,以及开发技巧,帮助开发者构建更安全、高效的Web应用。
|
JavaScript 前端开发 安全
JavaScript与TypeScript的对比,分析了两者的特性及在实际项目中的应用选择
本文深入探讨了JavaScript与TypeScript的对比,分析了两者的特性及在实际项目中的应用选择。JavaScript以其灵活性和广泛的生态支持著称,而TypeScript通过引入静态类型系统,提高了代码的可靠性和可维护性,特别适合大型项目。文章还讨论了结合使用两种语言的优势,以及如何根据项目需求和技术背景做出最佳选择。
1442 4
|
机器学习/深度学习 人工智能 JavaScript
JavaScript和TypeScript的未来发展趋势及其在Web开发中的应用前景
本文探讨了JavaScript和TypeScript的未来发展趋势及其在Web开发中的应用前景。JavaScript将注重性能优化、跨平台开发、AI融合及WebAssembly整合;TypeScript则强调与框架整合、强类型检查、前端工程化及WebAssembly的深度结合。两者结合发展,特别是在Vue 3.0中完全采用TypeScript编写,预示着未来的Web开发将更加高效、可靠。
561 4
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
303 2
|
JavaScript 安全 前端开发
掌握Deno:新一代安全的JavaScript和TypeScript运行时
【10月更文挑战第15天】Deno是由Node.js创始人Ryan Dahl发起的新一代JavaScript和TypeScript运行时,旨在解决Node.js的设计问题,提供更安全、现代的开发体验。本文介绍Deno的核心特性、优势及使用方法,包括安全性、统一的运行时、现代Web标准和内置工具等,帮助开发者快速上手Deno,适用于Web开发、工具开发和教育等领域。
|
Web App开发 JavaScript 前端开发
探索Deno:新一代JavaScript/TypeScript运行时环境
【10月更文挑战第25天】Deno 是一个新兴的 JavaScript/TypeScript 运行时环境,由 Node.js 创始人 Ryan Dahl 发起。本文介绍了 Deno 的核心特性,如安全性、现代化、性能和 TypeScript 支持,以及开发技巧和实用工具。Deno 通过解决 Node.js 的设计问题,提供了更好的开发体验,未来有望进一步集成 WebAssembly,拓展其生态系统。
|
JavaScript 安全 前端开发
探索Deno 1.x:安全JavaScript/TypeScript运行时的新篇章
【10月更文挑战第21天】Deno 1.x 是由Node.js创始人Ryan Dahl发起的项目,旨在解决Node.js的安全和模块化问题。Deno 1.x 版本带来了统一的运行时、默认安全、ES模块支持和内置TypeScript支持等新特性。其安全模型基于最小权限原则、沙箱环境和严格的远程代码执行控制,适用于Web服务器、命令行工具、桌面和移动应用及微服务开发。本文探讨了Deno 1.x的核心特性、安全模型及其在现代Web开发中的应用。
|
JavaScript 前端开发 安全
探索Deno:现代JavaScript/TypeScript运行时的崛起
【10月更文挑战第17天】Deno是由Node.js创始人Ryan Dahl发起的现代JavaScript/TypeScript运行时,强调安全性、TypeScript原生支持、统一的运行时环境和现代HTTP客户端。本文深入探讨了Deno的特性、优势及其在业界的应用,展示了它如何提升开发效率和代码安全性。
|
JavaScript 前端开发 安全
探索Deno 1.x:新一代JavaScript/TypeScript运行时
【10月更文挑战第16天】Deno 1.x是由Node.js创始人Ryan Dahl发起的新一代JavaScript/TypeScript运行时,自2018年首次亮相以来备受关注。本文介绍了Deno 1.x的新特性,如标准化模块、更严格的安全模型、改进的TypeScript支持和插件系统,探讨了其在现代Web开发中的潜在影响,并提供了如何开始使用Deno进行开发的指南。

热门文章

最新文章