如何在TypeScript npm模块中导出类型

在TypeScript中,说我想让用户使用模块的“内部”类型,以便他们在使用模块时可以正确键入自己的变量-我是否只是从index.ts文件中导出所有内容来完成此操作? / p>

// index.ts

export * from './file1' // uses types/interfaces defined in file1types
export * from './file2' // uses types/interfaces defined in file2types
export * from './types/file1types'
export * from './types/file2types'

我尝试读取TypeScript声明文件,但是有关此信息的内容非常分散。 .d.ts文件是否可以帮助我完成此任务,还是仅适用于非TS项目? tsconfig.json的选项declaration: true是否通过为每个TS文件生成一个.d.ts来帮助我实现这一点?这是从单个index.ts文件导出所有内容的替代方法吗?

如果declaration: true确实帮助我实现了这一点,那么用户将如何使用.d.ts文件夹中所有生成的build文件?

对于在TS项目中通常如何导出类型的一些澄清,我将不胜感激。预先感谢。

glueyou 回答:如何在TypeScript npm模块中导出类型

没有声明文件,您可以在TypeScript中开发一个包,对其进行编译并将其作为JavaScript代码提供给其他用户。包含它们还使TypeScript开发人员可以将包与您在其中定义的任何类型一起使用。他们可以在使用您的库时获取更多类型信息,例如必需的参数类型,函数返回类型等,以及在发生冲突时来自其IDE / Intellisense的警告。

文件declaration: true中的tsconfig.json指示TypeScript编译器输出声明文件(.d.ts)。通常,它们捆绑在一个文件中,例如index.d.ts,然后将一个"types": path/to/index.d.ts字段添加到库的package.json文件中,以通知TypeScript在何处查找类型(当用户导入包时)。

,

这是我针对最近遇到的相同问题的答案:

https://stackoverflow.com/a/64414544/10763156

基本上,我发现的唯一方法是将所有内容导出到namespace中。 无需担心声明文件。我只使用"declaration":"true"

本文链接:https://www.f2er.com/2636244.html

大家都在问