从TypeScript中的node_modules文件夹导入声明文件

时间:2017-11-14 15:46:43

标签: typescript typescript-typings immutable.js

我从包管理器“npm”下载了包“immutable”,其文件“package.json”的属性为“typings”,其值为node_modules/immutable/dist/immutable.d.ts

问题是,当我尝试从类中使用它时,我收到错误TS2307 (TS) Cannot find module 'immutable'

import { Immutable } from "immutable"; // error here

export class RestRepository<T = IEntityBase> extends BasicRepository<T>
{
    private c: Immutable.Foo;
}

我知道来自tsconfig的属性exclude排除了node_modules文件夹中的所有文件(node_modules/@typings除外),但“@ typings / immutable”没有ts文件而是{{1} }

README.md

  

这是Facebook的不可变(https://github.com/facebook/immutable-js)的存根类型定义。

     

Facebook的Immutable提供了自己的类型定义,所以你不需要安装@ types / immutable!

非常感谢任何帮助!

- tsc 2.6

1 个答案:

答案 0 :(得分:0)

我对Immutable有类似的问题。我可以解决的唯一方法是执行以下3个步骤:

1)将immutable.d.ts文件复制到应用程序的根目录(在我的情况下,该目录与我的索引相同。

2)像上面一样导入不可变的命名空间(第一步阻止了该操作显示错误)

3)导入我实际上想使用的功能,例如Map等

这给我留下了以下内容:

import * as Immutable from "immutable";
import { Map } from "immutable";

只有这样,我才能摆脱命名空间导入上的错误(对我而言,这阻止发布版本),并导入我尝试使用的实际功能(地图)。