typescript/Angular 2 中第 3 方库的导入选项之间的差异
Differences between import options for 3rd party libraries in typescript/Angular 2
有什么区别:
import * as jslibname from 'jslibname'
和
declare var jslibname: any;
例如,对于 firebase,我需要 declare var firebase: any;
暂时,我需要 import * as moment from 'moment';
这是什么逻辑?我什么时候使用一个或另一个?
顺便说一句,这是与 Angular CLI 和 systemjs 一起使用的。
当你这样做时
import * as library from 'library';
你真的是在导入库,可以开始使用了。如果您尝试在不导入的情况下使用它,那么您会产生错误。有时库 已经被导入 在您应用的某个地方,但您只想使用它。你可以,没有问题,应用程序将运行,但我想在你的情况下,TS 编译器会抛出一个错误(并且可能你的 IDE 将其标记为错误)。这是因为您的库 (.d.ts) 没有类型定义文件。最简单的修复方法是
declare var library: any;
这告诉 TS 编译器库存在并停止抛出编译错误(同时 IDE 停止抱怨)。
有什么区别:
import * as jslibname from 'jslibname'
和
declare var jslibname: any;
例如,对于 firebase,我需要 declare var firebase: any;
暂时,我需要 import * as moment from 'moment';
这是什么逻辑?我什么时候使用一个或另一个?
顺便说一句,这是与 Angular CLI 和 systemjs 一起使用的。
当你这样做时
import * as library from 'library';
你真的是在导入库,可以开始使用了。如果您尝试在不导入的情况下使用它,那么您会产生错误。有时库 已经被导入 在您应用的某个地方,但您只想使用它。你可以,没有问题,应用程序将运行,但我想在你的情况下,TS 编译器会抛出一个错误(并且可能你的 IDE 将其标记为错误)。这是因为您的库 (.d.ts) 没有类型定义文件。最简单的修复方法是
declare var library: any;
这告诉 TS 编译器库存在并停止抛出编译错误(同时 IDE 停止抱怨)。