node.js - 如何在 TypeScript npm 模块中导出类型

标签 node.js typescript node-modules

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

// 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'
.d.ts文件可以帮助我完成此任务,还是仅适用于非 TS 项目?是否 tsconfig.json的选项 declaration: true通过生成 .d.ts 帮助我完成此任务对于每个 TS 文件?这是从单个 index.ts 文件导出所有内容的替代方法吗?
如果 declaration: true确实帮助我实现了这一点,用户将如何使用所有生成的 .d.ts build 中的文件文件夹?
我将非常感谢有关在 TS 项目中通常如何导出类型的一些说明。提前致谢。

最佳答案

如果没有声明文件,您可以在 TypeScript 中开发一个包,对其进行编译并将其作为 JavaScript 代码公开给其他用户。包含它们还允许 TypeScript 开发人员将包与您在其中定义的任何类型一起使用。他们可以在使用您的库时获得更多类型信息,例如所需的参数类型、函数返回类型等,以及在发生冲突时来自他们的 IDE/Intellisense 的警告。
declaration: true在文件 tsconfig.json指示 TypeScript 编译器输出声明文件 (.d.ts)。它们通常捆绑在一个文件中,例如index.d.ts 然后是 "types": path/to/index.d.ts字段添加到库的 package.json文件以通知 TypeScript 在哪里查找类型(当用户导入包时)。

关于node.js - 如何在 TypeScript npm 模块中导出类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60712323/

相关文章:

javascript - Angular 2 : Promise rejection: alertify is not defined

bash - 使用命令行从指定路径递归删除node_modules文件夹

node.js - 我无法在 CENTOS 中安装 NODEJS...为什么?

node.js - 使用 join、group by、having、order by 进行 Sequelize

node.js - 包括存储库中不存在的文件

javascript - 构建 :Cannot find module OurFirstAppWithFVisualStudio. 模块.scss

javascript - 使用 typescript 和泛型编写库

angular - 在 Angular 7 组件(TypeScript)中通过 ID 获取元素并在组件中使用其属性

node.js - 服务器和客户端的 Package.json

node.js - Node 安装有时有@但并不总是