无法了解自定义类型在Typescript项目中的存储位置

时间:2019-06-14 21:56:31

标签: javascript typescript

打字稿很棒,类型很棒,但是在某些情况下并不是那么容易。

我与打字稿斗争了几天,我不明白在整个项目中需要放置我的打字稿的位置。

我知道这些类型可以包含在*.ts文件中,并且在编译时会删除它们。但是,如果我需要另一个模块中的type,而不需要使用相对路径导入它。但这看起来很丑..如果我将该文件移到另一个位置,则我会破坏项目的一半。

因此,我想到了类型应该独立于其使用位置的想法。

我已经阅读了有关声明合并的信息,看起来这正是我想要的。

我的目标:

我想构建一个用于nodejs的库,该库将在另一个打字稿项目和(也许)纯JavaScript项目中使用。

很显然,我的库的输出将是*.js*.d.ts文件。我不想发布*.ts文件,因为我只想编译一次,并且可以在纯js项目中使用(我不想在这里带打字稿编译器)

一个文件(模块),包含单个功能。 该函数具有inputoutputinputoutput的类型写在d.ts文件中

declare namespace library.foo {

type main = () => out

type out = {
   name: string
}

}

在声明旁边,我放置了具有实现(foo.ts)的文件:

createFoo: library.foo.main = () {
return { name: "baz"}
}

运行tsc i后,我在dist文件夹中看到foo.d.ts的以下输出:

declare const createFoo: library.foo.main

我的手写声明文件留在源文件夹中,而不是dist文件夹中。

tsc中是否有任何选项可以发出所有类型的单个声明文件?该文件将与生成的.js文件和所有.t.ds文件一起发布

0 个答案:

没有答案