【问题标题】:import typings of package with different name导入不同名称的包类型
【发布时间】:2018-02-26 01:12:03
【问题描述】:

我正在将现有项目转换为打字稿。该项目正在使用包ng-idle,它有@types 包,名称为angular-idle,文件@types/angular-idle/index.d.ts 包含

declare module 'angular' {
    export namespace idle {
         ....

如何导入这个包

   import * as ngIdle from 'angular-idle'

或

   import * as ngIdle from 'ng-idle'

【问题讨论】:

    标签: angularjs typescript webpack typescript2.0 ng-idle


    【解决方案1】:

    有几种方法可以做到这一点

    import {idle} from 'angular'
    const blah = idle.BLAH
    

    您甚至可以在导入时重命名命名空间

    import {idle as ng_idle} from 'angular'
    const blah = ng_idle.BLAH
    

    如果你已经导入了 angular

     import * as angular from 'angular'
     import idle = angular.idle
     const blah = idle.BLAH
    

    (或直接使用angular.idle)

    【讨论】:

    • 但是包名是ng-idle和angular-idle而不是angular,所以包名与导入时引号中指定的名称无关??
    • 如果我直接使用angular-idle,webpack会报错
    • 没关系。对编译器来说重要的是 1) 在 node_modules 中有名为“angular”的模块,2) 在外部模块“angular”的定义文件中导出了名称 idle。使用上面的导入并检查this example 的使用情况
    • 虽然您所说的在 ngIdle 的情况下有效,但在 ngStorage 的情况下同样无效,我在 angular.storage 中遇到了非常相似的问题,但它不起作用..question here
    猜你喜欢
    • 2020-03-10
    • 1970-01-01
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    相关资源
    最近更新 更多