gpt4 book ai didi

typescript - DefinitelyTyped 上 NodeJS 定义的可能重大变化

转载 作者:搜寻专家 更新时间:2023-10-30 21:09:49 29 4
gpt4 key购买 nike

在最近更改 https://github.com/DefinitelyTyped/DefinitelyTyped/pull/32567 之后,一些用户在引用使用 TypeScript 构建的库时可能会遇到编译时错误,该库引用了 DefinitelyTyped 上的 NodeJS 定义。库作者可能会发现,在他们的编译中,声明文件输出的顶部现在缺少以下内容:

/// <reference types="node" />
...

这是由于声明文件的发射行为中的错误。我们最近将 NodeJS 的定义拆分为多个文件,通过 /// <reference path="" /> 包含标签以提高可维护性,并且是支持 NodeJS 定义中更新的 TypeScript 语言功能所必需的。不幸的是,TypeScript 支持自动发出 /// <reference types="" />标签也不包含“环境模块”的路径引用。 fix现在可以在我们的 master 中使用分支,将在我们的下一个夜间构建中可用。

与此同时,如果用户使用的 TypeScript 版本没有此修复,用户可以做些什么来解决此更改?

最佳答案

最终用户应用

一般来说,使用 TypeScript 构建最终用户应用程序的用户不应受到此更改的影响,因为它只会影响声明文件 (.d.ts) emit。如果您已经将 @types/node 包安装到项目的 node_modules 目录中,我们将自动为您获取模块声明。

如果您在 tsconfig.json 中为您的项目显式设置了 "types" 条目,并且正在使用 NodeJS 或导出在 NodeJS 中声明的类型的包类型声明,您应该确保 "node" 包含在默认使用的类型包列表中。

共享包

如果您是依赖于声明文件输出中的 NodeJS 类型声明的包作者,您更有可能受到此问题的影响。依赖于您的包裹的下游包裹只有在以下情况下才会受到影响:

  • 尚未安装 @types/node 包作为开发依赖项。
  • 在他们的 tsconfig.json 中有一个 “types” 条目,包含 “node”

这些消费者可以通过确保安装了 @types/node 并且他们的 "types"(如果存在)包含 "node"< 来解决这些问题。他们也可以通过在编译器选项中指定 "skipLibCheck": true 来解决这个问题。

关于typescript - DefinitelyTyped 上 NodeJS 定义的可能重大变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54526099/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com