【问题标题】:How do you use TypeScript typings that are modules?你如何使用作为模块的 TypeScript 类型?
【发布时间】:2016-12-30 22:49:23
【问题描述】:

我正在尝试使用typings 加载bowser 的定义文件。我已经安装了typings 并运行typings install dt~bowser -DG --save-dev 在本地安装它。这很好用。但是现在我不知道如何使用它。过去,它“刚刚工作”——意思是,现在如果我尝试在 TypeScript 中写一些引用 bowser 的东西,它会找到我的定义文件(从DefinitelyTyped 下载)并将bowser 识别为全局函数.然而,现在看起来定义文件已经改变,它现在是一个“模块”:

declare module 'bowser' {
   var def: BowserModule.IBowser;
   export = def;
}

我应该如何在我的 TypeScript 文件中使用它?当然我可以这样做:

declare var bowser: BowserModule.IBowser;

但这感觉是错误的/骇人听闻的。我在这里错过了什么——打字/DefinitelyTyped 的世界发生了什么变化?

【问题讨论】:

    标签: typescript typescript-typings definitelytyped


    【解决方案1】:

    The correct syntax would be

    import bowser = require('bowser') 
    

    如果您的打字配置正确,它应该可以工作。否则,请检查您的构建脚本中是否引用了 typings/index.d.ts 文件,以及是否在其中正确引用了 bowser:

    /// <reference path="globals/bowser/index.d.ts" />
    

    【讨论】:

    • 感谢您的帮助,这让我更进一步。但是现在它说它找不到我在我自己的其他 .ts 文件中定义的常规导出类。我能够添加另一个 import 声明来修复它——但这看起来很疯狂?添加一个 import 后,是否需要从该点开始导入所有外部依赖项?
    • /// &lt;reference 行必须是文件中的第一件事,在任何类型的代码之前。也许这就是问题所在?
    • 虽然如果你问我,我认为应该尽可能使用 ES6 标准的“import”语句
    • 我将用代码示例提出一个单独的问题——你回答了我原来的问题。感谢您迄今为止的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-16
    • 2022-01-05
    • 2021-09-07
    • 2017-02-17
    • 2019-03-05
    • 2022-01-15
    • 2022-01-23
    相关资源
    最近更新 更多