这两个TypeScript导入语句之间的区别

时间:2017-02-19 22:18:26

标签: typescript

我习惯于这个TypeScript导入语句,它导入"组件"来自" angular / core"模块:

import {Component} from '@angular/core';

但我也看过其他导入语句,如:

import 'core-js/es6/symbol';

第二个人到底做了什么?

2 个答案:

答案 0 :(得分:2)

在文档中称为Import a module for side-effects only

  

虽然不推荐练习,但有些模块设置了一些全局状态   可以被其他模块使用。这些模块可能没有   出口,或消费者对他们的任何出口都不感兴趣。

在您发布的示例中,此导入可能会添加Symbol es6 polyfill,以便编译器即使没有定位es6也能找到它

答案 1 :(得分:1)

第二个引用javascript文件,在这种情况下\node_modules\core-js\es6\symbol.js,并且该文件中的任何导出语句都将加载到您的程序中。

symbol.js看起来像这样:

require('../modules/es6.symbol');
require('../modules/es6.object.to-string');
module.exports = require('../modules/_core').Symbol;

所以你从_core.js模块中获取.Symbol对象。