Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在TypeScript npm模块中导出类型_Node.js_Typescript_Node Modules - Fatal编程技术网

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

Node.js 如何在TypeScript npm模块中导出类型,node.js,typescript,node-modules,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 expor

在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'
我试着阅读TypeScript声明文件,但有关这方面的信息非常零碎。
.d.ts
文件是否有助于我完成此任务,还是仅用于非ts项目?
tsconfig.json
的选项
声明:true
是否通过为每个ts文件生成
.d.ts
来帮助我实现这一点?这是从单个index.ts文件导出所有内容的替代方法吗

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


我非常希望能够澄清在TS项目中通常如何导出类型。提前感谢。

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


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

这是我对最近遇到的同一问题的回答:

基本上,我找到的唯一方法是导出
命名空间中的所有内容。

不需要担心声明文件。我只是使用
“声明”:“true”

我不确定我是否理解这个问题,如果您想导出一个类型供API用户使用,只需导出它……在package.json文件中,您需要提供
.d.ts
条目文件
{“types”:“types/index.d.ts”}
的位置,也在您的typescript文件
“declaration”:true
declarationDir:“/types”
名称空间不鼓励使用es6模块iirc