将外部模块包含在Typescript文件中时出现TS2307错误

时间:2016-07-22 04:05:29

标签: angularjs typescript angular ionic-framework ionic2

我通过npm安装了一个模块,并尝试在我的打字稿文件中访问它。

npm install marker-animate-unobtrusive --save

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

这导致

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

搜索此问题会改变编译器选项,其他人会提到为类型脚本创建一个d.ts文件来识别模块,但我从来没有在任何地方得到明确的答案。我试过这些方法,但到目前为止收效甚微。 我正在使用Angular 2和Ionic 2,如果这些信息有帮助的话。

任何帮助表示赞赏!!

1 个答案:

答案 0 :(得分: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语句:

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

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