是否有通配符导出的语法?

Nae*_*Nae 2 javascript syntax typescript ecmascript-6 angular

有导入语法:

import * as foo from 'bar';
Run Code Online (Sandbox Code Playgroud)

我同样尝试过:

export * as foo from 'bar';
Run Code Online (Sandbox Code Playgroud)

但这引发了错误:

ERROR in src/app/@theme/components/aComp/aComp.loader.ts(1,10): error TS1005: 'from' expected.
src/app/@theme/components/aComp/aComp.loader.ts(1,13): error TS1005: ';' expected.
src/app/@theme/components/aComp/aComp.loader.ts(1,17): error TS1005: ';' expected.
src/app/@theme/components/aComp/aComp.loader.ts(1,22): error TS1005: ';' expected.
Run Code Online (Sandbox Code Playgroud)

还有导出语法:

export { default as foo } from 'bar';
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点而*不是default


(仅供参考,我试图require从声明中删除):

export const foo = require('bar');
Run Code Online (Sandbox Code Playgroud)

ng serve运行时抛出以下错误,包括.ts上述内容:

ERROR in src/app/@theme/components/aComp/aComp.loader.ts(6,20): error TS2304: Cannot find name 'require'.
Run Code Online (Sandbox Code Playgroud)

Ber*_*rgi 8

不,没有,但有人建议将此语法添加到语言中

目前,您将需要使用

import * as foo from 'bar';
export { foo }; // verbose: { foo as foo }
Run Code Online (Sandbox Code Playgroud)

这实际上更接近export const foo = require('bar');than export * as foo from 'bar';,因为它foo也在本地模块范围内提供。

  • @Nae 你的意思是 `const foo = require('bar');` 中的 `const`?是的,导入的命名空间对象是不可变的。 (2认同)