Ale*_*rov 5 javascript typescript
Typescript 很棒,类型很棒,但对于某些场景来说并不那么容易。
我与打字稿斗争了几天,我不明白在哪里放置需要在整个项目中使用的类型。
我知道这些类型可以包含在*.ts文件中,并且在编译时它们将被删除。但是,如果我type在另一个模块中需要它,那么我需要使用相对路径导入它。但它看起来很难看..如果我将该文件移动到另一个位置,我将破坏一半的项目。
所以我的想法是类型应该独立于它的使用位置。
我读过有关声明合并的内容,看起来这就是我想要的。
我的目标:
我想构建一个库(用于nodejs),它将在另一个打字稿项目和(也许)纯javascript项目中使用。
显然,我的库的输出将是*.js和*.d.ts文件。我不想发布*.ts文件,因为我想编译它们一次,并且可以在纯 js 项目中使用它(我不想在那里带打字稿编译器)
一个文件(模块)包含单一功能。该函数有input和output。类型input和output写入d.ts文件中
declare namespace library.foo {
type main = () => out
type out = {
name: string
}
}
Run Code Online (Sandbox Code Playgroud)
在声明旁边我放置了带有实现的文件(foo.ts):
createFoo: library.foo.main = () {
return { name: "baz"}
}
Run Code Online (Sandbox Code Playgroud)
运行后,tsc i我foo.d.ts在 dist 文件夹中看到以下输出:
declare const createFoo: library.foo.main
Run Code Online (Sandbox Code Playgroud)
我手写的声明文件留在源文件夹中,而不是在 dist 文件夹中。
tsc 中是否有任何选项可以发出包含我所有类型的单个声明文件?.js该文件将与生成的文件和所有.t.ds文件一起发布
| 归档时间: |
|
| 查看次数: |
1205 次 |
| 最近记录: |