优秀的编程知识分享平台

网站首页 > 技术文章 正文

Deno 对 Node 最近支持 TypeScript 的回应

nanyue 2025-05-22 12:25:51 技术文章 5 ℃

Node 现在支持 TypeScript ,这将使其与提供原生TypeScript支持的替代运行时Deno和Bun更加一致。TypeScript 允许开发人员定义数据类型,从而支持早期错误检测并防止JavaScript中常见的运行时问题。

Node 写道:“基本上,TypeScript 为 JavaScript 添加了额外的语法,以支持与编辑器更紧密的集成。”“[它可以]在编辑器或 CI/CD 管道中尽早捕获错误,并编写更易于维护的代码。”

据 InfoQ 称,原生 TypeScript 支持是开发人员要求最多的 Node 功能之一。该功能于去年 8 月作为实验性功能添加,但自 1 月起已默认启用。

TypeScript 为 Node 提供了其他好处,包括静态类型,即变量的类型已知,并在程序执行之前在编译时进行检查。根据 Deno 博客文章对这一消息的回应,向 JavaScript 添加类型有助于在项目增长时构建代码。这篇文章由 Deno 的创建者Ryan Dahl 和产品营销经理Andy Jiang撰写。

他们指出,它主要处理两项任务:

  • 类型检查,以确保您的变量与声明的类型相匹配。
  • 类型剥离,用于转译。在 TypeScript 中,开发人员可以向其代码添加类型注释,以提高可读性并捕获潜在错误。

类型剥离是删除这些类型注释的过程,通常在构建过程中进行。通常在将代码从具有类型注释的语言(如 TypeScript)转换为没有类型注释的语言(如纯 JavaScript)时进行。转译器将用一种编程语言编写的源代码转换为另一种编程语言的源代码。

Deno 解释了Node集成的工作原理。

他们写道:“这实际上将 ts-node 之前提供的功能直接集成到 Node 中,简化了 TypeScript 的执行。”“Node 的 TypeScript 支持用空格替换类型注释,从而产生有效的 JavaScript……”

尽管如此,Dahl 和 Jiang 指出,这种方法存在局限性,包括:

  • 没有内置类型检查,这意味着仍然需要像 tsc 这样的外部工具。
  • 不支持 JSX 或 TSX:“Node 可以处理 .ts、.mts 和 .cts,但 React (.tsx) 和 JSX 项目仍然需要外部转译器或捆绑器,例如 esbuild、Babel 或 tsc,”他们写道。
  • tsconfig.json 的手动管理:“类型检查仍然依赖于通过 tsconfig.json 进行的外部配置,”他们补充道。据 InfoQ 报道,Node.js 会忽略 tsconfig.json 文件。

他们将此与Deno处理该问题的方法进行了对比。

Dahl 和 Jiang 写道: “ Deno通过提供具有完全集成的 TypeScript 工具链的单个可执行文件来简化 Web 编程。” “这种方法以最少的配置提供了 TypeScript 的优势,简化了测试、格式化和编译工作流程。”

Deno 的 TypeScript集成由三个主要部分组成:

  1. 执行:Google 的 V8引擎直接执行 JavaScript,但不执行 TypeScript。
  2. 类型检查:微软的 TypeScript编译器,以 JavaScript 实现,内部捆绑。
  3. 类型剥离:SWC 是Rust内置的高性能解析器,无需运行 JavaScript 即可有效剥离类型。

他们补充说,TypeScript 在整个 Deno 工具链中都受到支持。

Nuxt.js 添加了 Lazy Hydration

Nuxt.js 3.16 版增加了对原生延迟/延迟水合的支持,让开发人员可以精确控制组件水合的时间。Nuxt 是一个基于 Vue 构建的开源 Web 应用程序框架,Vue 是一个用于构建用户界面的开源 JavaScript 框架。

Nuxt 核心团队负责人Daniel Roe写道,惰性加水可以改善初始加载性能和交互时间。

Nuxt 已经提供了Islands 架构,它定义了页面的哪些部分是静态的,哪些是交互部分。惰性补水是关于控制这些交互部分何时变为活动状态。这两者经常一起使用,因为惰性补水可以优化单个“岛屿”的补水。

此更新还包括其他功能和性能增强。

例如,Nuxt 通过 create-nuxt(一个用于启动 Nuxt 项目的新工具)简化了通过框架启动项目的过程。

Roe 写道:“它是 nuxi init 的精简版 —— 只有其六分之一大小,并且捆绑为一个文件,包含所有依赖项,以便您尽快启动。”

现在,可以通过以下方式开始一个新项目:
npm create nuxt

Nuxt 团队还做了许多性能改进,例如:

  • Roe 表示,使用 exsolve 以及 unjs 生态系统的其他部分(nitro、c12、pkg-types 等)进行模块解析,“显著”加快了模块解析速度;
  • 更智能的模块解析路径,优先考虑直接导入以提高效率;
  • 消除了重复的 Nitro 别名解析,以实现更精简的文件处理,并且
  • loadNuxt通过跳过不必要的解决步骤来简化流程,从而加快启动速度。

“为了增加一些轶事证据,我的个人网站roe.dev使用 v3.16 后加载速度提高了 32%,而 Nuxt.com 则提高了 28%,”Roe 写道。“我希望你也能看到类似的结果!”

Google 推出全新 AI 安全检查器 Gemma 3

本周,谷歌推出了轻量级开放模型集合Gemma 3。Gemma 3 采用与 Gemini 2.0 模型相同的研究和技术构建。

谷歌 DeepMind 研究副总裁Clement Farabet和主任Tris Warkentin 在周三发布的博客文章中介绍了这些模型。

Warkentin 和 Farabet 写道: “它们旨在直接在设备上快速运行——从手机、笔记本电脑到工作站——帮助开发人员在人们需要的任何地方创建人工智能应用程序。”

Gemma型号是开源的,并且提供开放重量。Gemma 3 有以下尺寸:1B、4B、12B 和 27B。

随着越来越多的组织开始构建自己的人工智能应用程序和人工智能代理,较小的语言模型变得越来越流行。

谷歌还推出了ShieldGemma2,这是一款基于Gemma 3基础构建的4B图像安全检查器。

帖子称:“ShieldGemma 2 为图像安全提供了现成的解决方案,可输出三个安全类别的安全标签:危险内容、色情和暴力。”“开发人员可以根据他们的安全需求和用户进一步定制 ShieldGemma。”

学术研究人员可能希望注意到,Google 还提供 Gemma 3 学术计划,该计划允许学术研究人员申请 Google Cloud 积分(每个奖励价值 10,000 美元)以加速他们基于 Gemma 3 的研究。申请流程已于本周开放,并将持续四周。

OpenAI 发布用于构建 AI 代理的开发工具

OpenAI 发布了“第一套构建模块”,以帮助开发人员在其平台上更有效地构建代理。AI 代理被定义为能够独立自动执行任务的 AI 系统。

OpenAI 团队在宣布这一消息时写道:“在过去的一年里,我们引入了新的模型功能,例如高级推理、多模式交互和新的安全技术,这些功能为我们的模型处理构建代理所需的复杂、多步骤任务奠定了基础。”“然而,客户表示,将这些功能转化为可用于生产的代理可能具有挑战性,通常需要大量的快速迭代和自定义编排逻辑,而没有足够的可见性或内置支持。”

为了支持 AI 代理的开发,本周该公司发布了新的Responses API,它“将 Chat Completions API 的简单性与Assistants API的工具使用功能相结合,使开发人员能够构建代理的核心逻辑”,OpenAI 解释说。

API 内置的工具包括使用与 ChatGPT 搜索相同的底层模型进行网页搜索、文件搜索和使用与 Operator 相同的底层模型进行计算机使用。OpenAI 补充说,这让 AI 代理能够访问它们发挥作用所需的信息和工具。

还有一个新的Agents SDK来协调单代理和多代理工作流程,以及集成的可观察性工具来跟踪和检查代理工作流程的执行情况。

欲了解更多信息,开发人员可以观看一些使用该工具的团队成员的现场直播视频。

《纽约时报》从 Enzyme 迁移到 React 测试库

《纽约时报》发布了一个小案例研究,介绍了其核心网站的React库从 React 16 升级到 React 18 所面临的最大挑战。

事实证明,他们面临的最大问题之一是将他们的代码库从 Enzyme 测试实用程序(专为 React 组件设计的 JavaScript 测试实用程序)转换为React 测试库。

React Testing Library 是一款流行的 JavaScript 测试实用程序,专注于从用户的角度测试 React 组件。该报道解释了这两个库在单元测试方面存在重大差异。它详细介绍了纽约时报的升级过程,并包含代码示例,以便开发人员可以看到Enzyme和 React Testing Library 之间的区别。

WordPress 插件漏洞被发现

据SearchEngine Journal报道,Word Fence 发现了 All-in-One WP Migration and Backup 插件中的一个漏洞,该插件的安装量超过 500 万次。该高危漏洞已被发现并修复。

“这种漏洞的工作原理是,WordPress 插件在备份恢复过程中处理潜在的恶意数据,而没有对其进行适当的验证,”SearchEngine Journal 报道。“但由于攻击机会很少,因此利用它并不容易。”

Tags:

最近发表
标签列表