【问题标题】:Differences between import options for 3rd party libraries in typescript/Angular 2typescript/Angular 2 中 3rd 方库的导入选项之间的差异
【发布时间】:2016-09-15 18:35:31
【问题描述】:

有什么区别: import * as jslibname from 'jslibname'declare var jslibname: any;

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

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

顺便说一下,这是使用 Angular CLI 和 systemjs。

【问题讨论】:

    标签: angular typescript firebase momentjs angular-cli


    【解决方案1】:

    当你这样做时

    import * as library from 'library';
    

    您实际上是在导入库,并且可以开始使用它。如果您尝试在不导入的情况下使用它,则会产生错误。有时,库已在您的应用中的某个位置导入,但您只想使用它。你可以,没有问题,应用程序会工作,但我猜在你的情况下 TS 编译器会抛出一个错误(并且可能你的 IDE 将其标记为错误)。这是因为您的库 (.d.ts) 没有类型定义文件。修复它的最简单方法是这样做

    declare var library: any;
    

    这告诉 TS 编译器库存在并停止抛出编译错误(IDE 也停止抱怨)。

    【讨论】:

    • 嗯,有道理。谢谢!下次我得仔细看看我的配置文件。
    猜你喜欢
    • 2014-10-25
    • 2020-02-15
    • 2018-10-09
    • 2017-04-10
    • 2018-06-18
    • 1970-01-01
    • 2020-10-16
    • 2017-06-30
    • 1970-01-01
    相关资源
    最近更新 更多