TypeScript 导出导入接口 [英] TypeScript export imported interface

查看:68
本文介绍了TypeScript 导出导入接口的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I use AMD modules and I want to hide a complex interface behind one file that loads several other files and chooses what to expose and how. It works, I use this solution but it feels kinda ugly, mostly with the interfaces.

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 

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

Any better solutions out there? I don't want to put everything into a single file but I want to import a single file.

推荐答案

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

There is an export import syntax for legacy modules, and a standard export format for modern ES6 modules:

// 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 导出导入接口的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆