Node.js 从模块导出类型
我用ts编写代码已经有一段时间了,但我仍然不明白witch是从模块导出函数和类型的正确方法 这就是背景:Node.js 从模块导出类型,node.js,typescript,module,Node.js,Typescript,Module,我用ts编写代码已经有一段时间了,但我仍然不明白witch是从模块导出函数和类型的正确方法 这就是背景: 类型脚本2.7,节点9 具有导出函数和类型的区域设置模块A 模块B将模块A添加为dependecy,并使用从A导出的函数和类型 在我的项目中,当我声明类型时,我更喜欢使用@types文件夹和d.ts文件。例如: declare type Message = { message: string } 这样,在使用类型时就没有必要显式导入类型 但我无法理解我如何才能出口它。 我可以导
- 类型脚本2.7,节点9
- 具有导出函数和类型的区域设置模块A
- 模块B将模块A添加为dependecy,并使用从A导出的函数和类型
declare type Message = {
message: string
}
这样,在使用类型时就没有必要显式导入类型
但我无法理解我如何才能出口它。
我可以导出类型的唯一方法是使用接口
export interface IMessage {
message: string
}
但在这种情况下,我必须在需要时在ts文件中导入then接口,我希望避免这种情况
你能帮我理解正确的方法吗?我认为这不可能“准确地”做你想做的事。例如:typescript包(来自npm)使用
接口字符串{..}
,然后将其导出。所以,如果您想避免使用接口,我认为这是不可能的,但您可以添加自定义打字文件
下面是一个示例:如果需要导出其他项目使用的类型,请更改
tsconfig.json
并添加声明:true
。这将使TypeScript编译器为所有类型发出声明文件
此外,如果需要,可以从模块导出类型
export type Action = () => void;
那你就可以了
import { Action } from './module';
而且它可以完美地工作为什么需要导出这些类型?你的意思是将它们导出以供其他项目使用?因为,正如您所说,通过创建
d.ts
文件,类型不需要导入是的,我想导出类型以便被其他项目使用。一种可能的解决方案:index.d.ts:declare type MessageType={message:string;}index.ts:export接口IMessageType扩展MessageType{}我已经启用了该标志,但它似乎没有像typescript 2.8.1中的expeted那样工作。这不能与“isolatedModules”一起使用:true,
,这似乎是创建反应应用程序
需要的。。。