NPM 包的类型声明文件必须是 .d.ts 文件吗?

Is NPM package's type declaration files must be .d.ts file?

在我看来,我们可以将类型声明放在任何打字稿文件中(例如 '.d.ts', '.ts', '.tsx' )。

但是我发现几乎每个npm包的类型声明文件都是.d.ts文件.

有这个必要吗?


我的真实场景是我只想让我的 npm 包被一些 typescript 项目使用,所以我发布我的包而不编译(所有 .ts 文件)

不知道有没有问题?

发布包时,您会生成 .js 个文件和 .d.ts 个文件。这保证了人们可以在 'normal' JavaScript 项目中安装您的包,并且如果他们不想,则不必使用 TypeScript。他们无法解释 .ts.tsx 文件。然后可以忽略 .d.ts 文件和 .js 文件。

如果你只想在自己的 TypeScript 项目中使用这个包。你必须告诉你的捆绑器(如 Webpack)也使用 ts-loader 编译这个包,因为浏览器无法解释 TypeScript。此外,如果它是一个 Node.js 应用程序,Node 本身比 ts-node 快很多。在我看来,这将是不必要的开销。