从模块导出类型

时间:2018-04-16 09:35:58

标签: node.js typescript module

我用ts编写代码已经有一段时间了,但我仍然无法理解女巫是从模块中导出函数和类型的正确方法。

这是上下文:

  • Typescript 2.7,节点9。

    1. 具有导出功能和类型的区域设置模块
    2. 模块B将模块A添加为依赖,并使用从A
    3. 导出的函数和类型

在我的项目中,当我声明类型时,我更喜欢使用@types文件夹和d.ts文件。例如:

declare type Message = {
   message: string
}

这样就无需在使用时明确导入类型。

但我无法理解如何将其导出。 我可以导出类型的唯一方法是使用接口。

export interface IMessage {
    message: string
}

但是这样我必须在需要时导入ts文件中的接口,我想避免这种情况。

你能帮我理解正确的方法吗?

2 个答案:

答案 0 :(得分:1)

如果您需要导出其他项目要使用的类型,请更改tsconfig.json并添加declaration: true。这将使TypeScript编译器为您的所有类型发出声明文件。

此外,如果你这样做,你可以从模块中导出类型

export type Action = () => void;

然后你可以做

import { Action } from './module';

它会完美地运作

答案 1 :(得分:0)

我认为不可能“完全”做你想做的事。例如:typescript pack(来自npm)使用interface String {..}然后导出它。所以,如果你想避免接口,我认为是不可能的,但你可以添加你的自定义打字文件。

以下是一个示例:How to add custom "typings" in typescript 2.0