如何从 './foo' 中将 * 导出为 foo?

How do I `export * as foo from './foo'`?

TypeScript 支持 re-exports,借此一个模块可以导出从另一个模块导入的值:

export {ZipCodeValidator as RegExpBasedZipCodeValidator} from "./ZipCodeValidator";

它还支持通配符导出:

export * from "./StringValidator";

但是支持这种语法(Microsoft/TypeScript#1215讨论了这种语法,它来自ES6,不包括这种形式):

export * as StringValidator from "./StringValidator"

我想这样做的原因是我可以将我的模块拆分成单独的文件,并使 TypeScript 等效于这样的声明:

module.exports = {
    foo: require('./foo'),
    bar: require('./bar'),
}

感谢Daniel Tabuenca on Gitter:

import * as foo from './foo'
import * as bar from './bar'
export {foo, bar}