我正在尝试发布一个打字稿库。我不清楚如何公开所有类型和接口。这是我的设置:
mylib
???src
? ???types
| | ???mytypes.ts
? ???index.ts
???package.json
???tsconfig.json
Run Code Online (Sandbox Code Playgroud)
mylib
???src
? ???types
| | ???mytypes.ts
? ???index.ts
???package.json
???tsconfig.json
Run Code Online (Sandbox Code Playgroud)
//index.ts
import {MyInterface} from './types/mytypes.ts';
const my_main_name = {
myfunc: function(param1:MyInterface):void{
console.log(param1.a);
}
}
Run Code Online (Sandbox Code Playgroud)
我通过设置tsconfig.jsonparam生成声明文件"declaration":"true"。
现在我想使用这个库作为另一个库的依赖。
mylib
yrlib
???src
? ???index.ts
???package.json
???tsconfig.json
Run Code Online (Sandbox Code Playgroud)
//mytypes.ts
export interface MyInterface {
a:string
}
Run Code Online (Sandbox Code Playgroud)
mylib
yrlib
???src
? ???index.ts
???package.json
???tsconfig.json
Run Code Online (Sandbox Code Playgroud)
mylib因为它是导出的,所以我得到了自动完成。
我的问题是如何查看mylib模块内部的所有类型和接口yrlib?
因为它们可以是数百个并且位于所有不同的文件和文件夹中。
我应该一一导出所有这些吗?最佳做法是什么?有没有办法一次导出所有类型?
而如何"typying":"dist/index.d.ts"在package.json这一切发作?应该是一个文件中的所有类型吗?为什么 Typescript 不生成这个文件?
我应该使用包含所有内容的命名空间吗?我找不到关于这个主题的完整解释。
我最近遇到了同样的问题,我发现将类型空间代码(例如:类型、接口)与值空间代码(例如:函数、类、变量)一起发布的唯一方法是导出namespace包含一切。
另一个奇怪的是,为了导出到导入的namespace东西,语法是:
import * as mymod from './mymod';
import * as mytypes from './mytypes';
export namespace mylib {
export import mod = mymod;
export import types = mytypes;
}
Run Code Online (Sandbox Code Playgroud)
用export import语法。
不幸的是,这在我的 eslinter 中将在警告/错误中解决,因为它显然读取mod并types作为unused-vars.
我不明白为什么文档中没有对这个主题的完整解释。
| 归档时间: |
|
| 查看次数: |
2305 次 |
| 最近记录: |