TypeScript错误 - TS7016 - (TS)找不到模块'redux-localstorage'

时间:2017-08-20 20:19:35

标签: typescript

我已将环境升级到TypeScript 2.4.1,并在tsconfig.json中转为"strict": true,。我真的很喜欢严格的空检查,它太酷了,但是,我正在用我正在使用的redux东西撞到一堵砖墙。我正在使用的是通过npm安装的模块'redux-localstorage'。这个新的TypeScript编译器已经过时了,可能已经过时了,并且没有任何问题。它抛出一个错误,“TS7016 - (TS)找不到模块'redux-localstorage'的声明文件。”

我找到了一个'@ types / redux-localstorage'但是,看起来,它是用不同参数的模块的旧版本完成的。正如我所说,我知道该模块有效,它只是没有使用这种严格的类型检查。

问题是,我只从一个.ts文件调用模块,我只使用一个函数。所以,在这个.ts文件的顶部我有这个import语句:

import persistState from 'redux-localstorage';

在我更新到较新的TypeScript并开启严格检查之前,此声明正常工作,但现在我收到了规定的错误。

我有两个问题,有人知道快速简单的解决方法吗?我真的不想关闭严格的检查(我认为这是造成问题的原因)。但也许有一种方法可以关闭这个文件吗?

第二个问题是,如果没有“快速修复”,我可以为这个模块编写我自己的'.d.ts'文件,实际上就是这个函数。如果是这样,任何人都可以指点如何?如上所述,我只需要为一个函数创建一个类型。

更新 - 我已解决了问题

我创建了这个类型文件:

// Type definitions for redux-localstorage persistState, until a better solution becomes available
import * as Redux from "redux";

export interface ConfigRS {
    key: string;
    merge?: any;
    slicer?: any;
    serialize: (value: any, replacer?: (key: string, value: any) => any, space?: string | number) => string,
    deserialize: (text: string, reviver?: (key: any, value: any) => any) => any
}

export default function persistState(paths: string | string[], config: ConfigRS): Redux.GenericStoreEnhancer;

然后我必须将此文件作为文件名index.d.ts添加到node_modules/@types/redux-localstorage目录

感谢您的建议......

0 个答案:

没有答案