网站搜索

在 Typescript 中导入并重新导出多个模块到单一别名下


我有几个导出对象和函数的文件(模块):

directory/
--> FileA.ts
--> FileB.ts
--> FileC.ts

我的目标是从所有这些文件中以相同的别名重新导出所有这些函数/对象。我想做的是创建一个新文件AllClasses.ts,在该文件中以相同的别名重新导出所有内容。

错误 示例 1 来自 ./AllFiles.ts:

export * as AllClasses from 
    './FileA.ts', 
    './FileB.ts',
    './FileC.ts';

错误 示例 2 来自 ./AllFiles.ts:

import * as ClassA from './FileA.ts';
import * as ClassB from './FileB.ts';
import * as ClassC from './FileC.ts';

export {ClassA, ClassB, ClassC} as AllFiles;

我在 StackOverflow、Typescript 手册或其他网站上搜索过是否有类似的方法来做这件事,但都没找到。

答案#1

你可以通过一个额外的文件来做到这一点:

AllFiles.ts:

import * from './FileA.ts';
import * from './FileB.ts';
import * from './FileC.ts';

AllClasses.ts:

export * as AllClasses from "./AllFiles.ts";

用法:

import { AllClasses } from 'AllClasses.ts'
let x = new AllClasses.ClassA();

我找不到一个单文件的解决方案。

答案#2

这个问题已有两年历史。答案是由Aleksey L.提供的。

在 ./AllFiles.ts 中的导出端:

AllFiles = {ClassA, ClassB, ClassC}

在导入端这样调用它:

import { AllFiles } from './AllFiles.ts' 

然后这样使用它:

let A = AllFiles.ClassA.SubClassA(...params);