【问题标题】:TS2307 error when including external modules to Typescript file将外部模块包含到 Typescript 文件时出现 TS2307 错误
【发布时间】:2016-11-25 20:34:30
【问题描述】:

我通过 npm 安装了一个模块,并试图在我的 typescript 文件中访问它。

npm install marker-animate-unobtrusive --save

import SlidingMarker = require('marker-animate-unobtrusive');

这会导致

//Error TS2307: Cannot find module 'marker-animate-unobtrusive'

搜索这个问题带来了编译器选项的更新,其他人提到为 Type Script 创建一个 d.ts 文件以识别模块,但我在任何地方都没有得到明确的答案。我尝试了这些方法,但到目前为止收效甚微。 如果该信息有帮助,我正在为此使用 Angular 2 和 Ionic 2。

感谢任何帮助!

【问题讨论】:

    标签: angularjs typescript angular ionic-framework ionic2


    【解决方案1】:

    问题是因为 SlidingMarker npm 模块还没有类型定义。

    1) 在 typings/marker-animate-unobtrusive.d.ts 中创建通用定义:

    declare module 'marker-animate-unobtrusive' {
      const x: any;
      export = x;
    }
    

    2) 将此文件添加到 typings/main.d.ts(或 typings/index.d.ts,如果您使用较新的类型)中的定义列表:

    /// <reference path="marker-animate-unobtrusive.d.ts"></reference>
    

    3) 接下来,更新您的导入语句:

    import * as SlidingMarker from 'marker-animate-unobtrusive';
    

    沃利亚!请注意,您可能需要将转换为“SlidingMarker”的任何变量更改为“any”以避免其他 TypeScript 错误。

    【讨论】:

      猜你喜欢
      • 2017-07-17
      • 1970-01-01
      • 2017-12-10
      • 2017-03-18
      • 2017-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-21
      相关资源
      最近更新 更多