TypeScript如何将外部类重新导出到指定namespace下作为成员
解决方案
你要实现的命名空间内跨文件重导出类的功能,写法如下:
修正Bar.ts的语法问题
你给出的Bar.ts代码存在字符串未闭合的语法错误,修正后代码:
// Bar.ts export class Bar { public log() {console.log('I\'m in Bar');} }
编写Foo.ts的重导出逻辑
ES模块的export ... from语法仅支持在文件顶层使用,无法直接写到namespace内部,所以需要先顶层导入目标类,再在命名空间内做二次导出:
// Foo.ts import { Bar } from './Bar.ts'; export namespace Foo { // 把顶层导入的Bar类挂载到Foo命名空间下导出 export import Bar = Bar; }
调用示例
其他文件引用时的写法如下:
import { Foo } from './Foo.ts'; const barIns = new Foo.Bar(); barIns.log(); // 控制台输出:I'm in Bar
内容的提问来源于stack exchange,提问作者joe
相关产品推荐
相关产品推荐

