TypeScript 导出导入接口(interface)

标签 typescript

我使用 AMD 模块,我想在一个文件后面隐藏一个复杂的界面,该文件加载多个其他文件并选择要公开的内容和方式。它有效,我使用这个解决方案,但感觉有点难看,主要是界面。

import Types = require('./message-types');
import MessageBaseImport = require('./message-base');
export interface IMessage extends Types.IMessage {} // This is an interface
export var MessageBase = MessageBaseImport; // This is a class

用法:

import Message = require('message');
import { * } as Message from 'message'; // Or with ES6 style
var mb = new Message.MessageBase(); // Using the class
var msg: Message.IMessage = null; // Using the interface 

还有更好的解决方案吗?我不想将所有内容都放入一个文件中,但我想导入 一个文件。

最佳答案

遗留模块有导出导入语法,现代 ES6 模块有标准导出格式:

// export the default export of a legacy (`export =`) module
export import MessageBase = require('./message-base');

// export the default export of a modern (`export default`) module
export { default as MessageBase } from './message-base';

// when '--isolatedModules' flag is provided it requires using 'export type'.
export type { default as MessageBase } from './message-base';

// export an interface from a legacy module
import Types = require('./message-types');
export type IMessage = Types.IMessage;

// export an interface from a modern module
export { IMessage } from './message-types';

关于TypeScript 导出导入接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30712638/

相关文章:

angular - Angular 6/Typescript 中的广播事件

javascript - 如何验证电子邮件和最小长度验证

reactjs - React 和 TypeScript 中的 "Object is possibly undefined"

javascript - 无效管道参数 : 'Unable to convert "2018-01-01-12:12:12:12345 6"into a date' for pipe 'DatePipe'

Angular 2路由器不解析子辅助路由

javascript - Typescript/Javascript 中的复合 Promise?

TypeScript 导出和重命名默认值

javascript - Angular 登录表单验证

angular - 如何截断Angular中的文本?

javascript - 根据另一个单词数组对单词数组进行排序