Nodejs 没有实现 TypeScript

nodejs 没有实现 typescript

简述node.js没有实现typescript的原因。

首先要事

下面是关于 typescript 在 node.js 中已经做了以及尚未的解释。

本文无意批评 node.js 团队或 typescript 团队。

其实恰恰相反

我认真地认为 node.js 团队在“实现”typescript 方面做出了最好的选择。

我在这里真正强调的是 node.js 没有实现 typescript。他们只是添加了某种支持。这是一个重要的区别,我认为在有关 node.js 和 typescript 的讨论中经常被忽视。

过去几周,我读到的时事通讯中引用了 50 多篇文章,提到 node.js 实现了 typescript。

我想是时候彻底澄清这一点了

剧透警告:node.js 没有实现 typescript。

typescript:简史和一些数据

2010 年,微软发布了 typescript,它是 javascript 的超集,为该语言添加了静态类型。 typescript 旨在解决 javascript 的一些缺点,例如缺乏类型安全性和维护大型代码库的困难。自发布以来,typescript 受到了开发者的欢迎,许多项目都采用它作为主要语言。

根据最新的 js 现状调查,typescript 几乎无处不在。 78% 的开发者至少 50% 的开发时间都在使用 typescript,所以难怪“node.js 实现了 typescript” 的回声甚至到达了网络最深刻的角落。

但是,需要澄清的是,这并没有发生。而且可能永远不会。

问题

node.js 没有实现 typescript 有几个原因。以下是我认为最重要的两个:

#1:typescript 在运行时注入东西。

你知道enum在运行时会变成什么吗?一个物体.

幸运的是,这只是 typescript 如何在运行时注入东西的少数示例之一。这对于 node.js 来说是一个问题,因为这意味着运行时必须了解 typescript 的功能,这会带来大量的复杂性和开销。

如果 node.js 想要保持与 ecmascript 的一致性,并且在其余生中不需要处理依赖关系管理,它就不能接受 typescript 作为当前形式的依赖关系。

#2:语义版本控制。

typescript 不遵循语义版本控制 (semver)。

另一方面,

node.js 严格遵循 semver 并具有三个不同的发行版(目前,我们有 18.x、20.x、22.x)。这意味着可以在次要版本或补丁版本中引入重大更改,这可能会导致与现有代码的兼容性问题。

而且,支持的平台数量巨大,要控制一切并不容易。

node.js 根本无法接受 typescript 作为依赖项,因为它会破坏 semver。这是阻止 node.js 实现 typescript 的根本问题。

那么,他们做了什么?

这就是混乱出现的地方。 node.js 没有实现 typescript,但他们确实在实验性标志下添加了类型剥离。此功能允许开发人员编写 typescript 代码并将其编译为 javascript,而无需类型信息。这是一种妥协,允许开发者在 node.js 中使用 typescript,而不会引入上述问题。

你想要一个例子吗?给你:

function sum(a: number, b: number): number {  return a + b;}

登录后复制

这个函数,当使用–experimental-strip-types标志编译时,将变成:

function sum(a        , b        )         {  return a + b;}

登录后复制

你看到了吗?类型消失了,并被空格取代。 但是,为什么?,你可能会问。好吧,因为这样做可以保留源映射引用,而无需为这些引用建立单独的构建过程。

在内部,这是通过一个名为 amaro 的包完成的,它包装了 swc——一个著名的构建工具,它执行实际的剥离。

当然,限制是存在的,比如无法使用前面提到的enums等特定于typescript的功能。但是,这仍然是向前迈出的一大步,可以防止人们编写 135 个配置文件来使 sum 函数接受两个数字并返回第三个数字。

再见,
迈克尔.

以上就是Nodejs 没有实现 TypeScript的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2671064.html

(0)
上一篇 2025年3月7日 13:06:43
下一篇 2025年2月18日 08:50:03

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JavaScript 和 TypeScript

    您正在开始一个新项目,问题出现了:哪种语言能让您取得成功——javascript 还是 typescript?两者各有优点,但适合不同的开发风格。 javascript 凭借其动态特性,多年来一直是交互式 web 体验的支柱。它用途广泛且宽…

    2025年3月7日
    200
  • Node.js 生态系统安装及使用教程

    Node.js 安装与使用教程:前往官网下载安装包并安装 Node.js。使用 NPM 包管理器安装、更新和卸载 Node.js 包。初始化新项目并创建 package.json 文件。安装项目依赖项(外部库或模块)。创建 JavaScri…

    2025年3月7日
    200
  • node.js开发环境文献

    摘要:建立 Node.js 开发环境需要:安装 Node.js安装编辑器/IDE配置调试工具设置代码规范使用版本控制系统集成测试框架使用部署工具 node.js 开发环境文献 Node.js 简介 Node.js 是一个开放源码的服务器端 …

    2025年3月7日
    200
  • nodejs开发环境搭建

    在 Node.js 开发环境中,安装分为以下步骤:下载并安装 Node.js 官方网站提供的最新版本。安装 Node.js 包管理器 npm,用于管理模块和包。选择文本编辑器或 IDE 来编写代码。创建项目文件夹并初始化 npm 项目。根据…

    2025年3月7日
    200
  • node.js 开发

    Node.js 是一种 JavaScript 运行时环境,用于服务器端开发,提供实时且高性能的服务端解决方案。初学者指南包括:安装 Node.js。创建一个新项目,并初始化一个名为 package.json 的配置文件。在 index.js…

    2025年3月7日
    200
  • nodejs开发gui

    是的,Node.js 可以使用 Electron 框架开发桌面应用程序,其具有原生外观和感觉。Electron 框架是一个开源框架,将 Node.js 和 Chromium 嵌入到一个运行时中,允许开发人员使用 HTML、CSS 和 Jav…

    2025年3月7日
    200
  • nodejs开发工具选择

    Node.js 开发工具选择主要包括:免费且跨平台的 Visual Studio Code(VS Code)专用于 Node.js 开发并提供高级功能的 WebStorm(付费)轻量级且高度可定制的 Sublime Text(付费)免费且可…

    2025年3月7日
    200
  • nodejs项目开发

    对于 Node.js 项目开发,最佳实践包括:采用模块化架构、遵循命名约定、使用版本控制、编写可测试的代码、处理错误、优化性能、确保安全性、提升可伸缩性以及实施监控和日志记录。遵循这些原则有助于构建可靠、可维护且可扩展的应用程序。 Node…

    2025年3月7日
    200
  • nodejs在线开发环境

    Node.js 在线开发环境是基于云端的平台,免除了本地设置,并提供了代码协作、版本控制集成和自动部署等好处。常见的平台包括 Cloud9 IDE、Glitch、Repl.it、AWS Amplify Studio 和 Heroku DX。…

    2025年3月7日
    200
  • 怎么查看nodejs版本

    有三种方法可以查看已安装的 Node.js 版本:命令行方法:运行 “node -v”。Node.js REPL 方法:在 REPL 中输入 “process.versions.node”。N…

    2025年3月7日
    200

发表回复

登录后才能评论