wiu*_*lma 6 module node.js typescript
我用 ts 编写代码已经有一段时间了,但我仍然不明白女巫是从模块导出函数和类型的正确方法。
这是上下文:
Typescript 2.7,节点 9。
在我的项目中,当我声明类型时,我更喜欢使用 @types 文件夹和 d.ts 文件。例如:
declare type Message = {
message: string
}
Run Code Online (Sandbox Code Playgroud)
这样使用时就不需要显式导入类型了。
但我不明白如何导出它。我导出类型的唯一方法是使用接口。
export interface IMessage {
message: string
}
Run Code Online (Sandbox Code Playgroud)
但这样我就必须在需要时在 ts 文件中导入 then 接口,我想避免这种情况。
你能帮助我理解正确的方法吗?
如果您需要导出类型以供其他项目使用,请更改tsconfig.json并添加declaration: true. 这将使 TypeScript 编译器为所有类型发出声明文件。
此外,如果您这样做,您可以从模块导出类型
export type Action = () => void;
Run Code Online (Sandbox Code Playgroud)
然后你可以做
import { Action } from './module';
Run Code Online (Sandbox Code Playgroud)
它会完美地工作
我认为“完全”做你想做的事情是不可能的。例如:typescript pack(来自 npm)使用interface String {..}然后导出它。因此,如果您想避免接口,我认为这是不可能的,但您可以添加自定义类型文件。
这是一个示例:How to add custom "typings" in typescript 2.0