【问题标题】:When do we use typescript import * as?我们什么时候使用 typescript import * as?
【发布时间】:2019-07-30 01:23:03
【问题描述】:
尝试为import * as Blah 的功能开发一个心智模型。例如:
import * as StackTrace from 'stacktrace-js';
这是如何工作的?我们什么时候做import *?
【问题讨论】:
标签:
javascript
node.js
angular
typescript
npm
【解决方案1】:
不是一个真正的答案,而是一个用法:假设您有一些常量字符串要在您的应用程序中使用,您可以在单个文件中定义它们并导出
export const name = "NAME";
export const someOtherString = "SOME_CONST_STRING";
然后您可以使用以下命令将它们导入单个变量中:
import * as CONST_STRINGS from './yourFilePath';
并用作
CONST_STRINGS.name
CONST_STRINGS.someOtherString
【解决方案2】:
来自TypeScript doc:
将整个模块导入单个变量,并使用它来访问模块导出
示例代码将stacktrace-js 模块的所有导出 导入到名为StackTrace 的变量中。
任何命名的导出都可以作为同名的属性使用。
如果模块有一个默认导出,它将作为default 属性提供。
请注意TypeScript Module doc:
从 ECMAScript 2015 开始,JavaScript 有了模块的概念。 TypeScript 分享了这个概念。
所以 TypeScript 模块的行为方式与 ES6 JavaScript 模块相同。
当您想在单个变量中访问所有模块导出时,您可以在 TypeScript 或 JavaScript 中使用 import * as。