npm 包的类型定义是否仅在开发人员机器上需要?

Are type definitions for npm packages required only on developer machine?

据我了解,类型定义模块(针对 npm 包)为开发人员提供了智能感知,因此他们在调用库方法时不必猜测参数类型。例如,当我在 vscode 编辑器中使用第三方库(及其类型定义模块)时,这些模块在我的打字稿项目中非常有用。

  1. 这是类型定义模块的唯一目的(即提供智能感知)吗?
  2. 如果答案是肯定的,那么在构建服务器和生产机器上应该不需要它们。这是真的吗?

如果您使用的是普通的旧 JavaScript 那么是的,类型包仅用于在编辑器中提供 IntelliSense 和更好的语言支持。在许多情况下,automatic type acquisition 应该会为您下载和管理这些类型文件。您还可以在开发依赖项中明确列出这些类型包

如果您正在使用 TypeScript 或使用新的 checkJS 功能对您的 JavaScript 代码进行类型检查,则必须在构建机器上安装类型定义。只需将它们列在开发依赖项中即可。您通常不需要在生产机器上使用类型包