2016-09-15 122 views
0

有什么区别: import * as jslibname from 'jslibname'declare var jslibname: any;差异/角2

例如,对于火力点,我需要declare var firebase: any; 对于时刻,我需要import * as moment from 'moment';

这里的逻辑是什么?我什么时候使用其中一种?

顺便说一下,这与Angular CLI和systemjs有关。

回答

0

当你

import * as library from 'library'; 

你真的导入库,就可以开始使用它。如果您尝试在未导入之前使用它,则会导致错误。有时图书馆已被导入已在您的应用程序的某个地方,但你只是想使用它。你可以没有问题,应用程序将工作,但我想你的情况下,TS编译器会抛出一个错误(并且可能你的IDE将它标记为错误)。这是因为你的库没有类型定义文件(.d.ts)。要解决这个问题,最简单的方法是做

declare var library: any; 

这是告诉该库中存在,并停止抛出一个编译错误(也IDE停止抱怨)的TS编译器。

+0

啊,这是有道理的。谢谢!下一次我将不得不仔细看看我的配置文件。 – user68311