【问题标题】:Is there a syntax for wildcard export as? [duplicate]有通配符导出的语法吗? [复制]
【发布时间】:2019-01-02 06:21:39
【问题描述】:

有导入语法:

import * as foo from 'bar';

我同样尝试过:

export * as foo from 'bar';

但这引发了错误:

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.

还有导出语法:

export { default as foo } from 'bar';

有没有办法为 * 而不是 default 执行此操作?


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

export const foo = require('bar');

运行ng serve 时会抛出以下错误,包括上面的.ts

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

【问题讨论】:

  • export * as foo 究竟会做什么?如果没有require,那条require 行将如何工作?
  • import * as foo from 'bar'; export foo;怎么样
  • @deceze 我不太清楚。我只是想删除require,因为 tslint 让我很烦。
  • @HyyanAboFakher 这确实有效。想知道是否有更好的方法。
  • 那么也许可以告诉我们 tslint 是如何让您对此感到烦恼的,并询问我们该怎么做。见xyproblem.info

标签: javascript angular typescript ecmascript-6 syntax


【解决方案1】:

不,没有,但有a proposal to add this syntax to the language

目前,您将需要使用

import * as foo from 'bar';
export { foo }; // verbose: { foo as foo }

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

【讨论】:

  • 谢谢。这也是const 的原因吗?
  • @Nae 你的意思是const foo = require('bar'); 中的const?是的,导入的命名空间对象是不可变的。
猜你喜欢
  • 2016-06-03
  • 2012-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-08
  • 1970-01-01
  • 1970-01-01
  • 2012-04-25
相关资源
最近更新 更多