尝试从aws-appsync库修复“找不到模块的声明文件”会导致另一个错误

时间:2018-12-12 12:34:09

标签: reactjs typescript typescript-typings

我正在使用aws-appsync库,但遇到此错误:

  

(4,42):找不到模块'@ redux-offline / redux-offline / lib / types'的声明文件。 “ node_modules/aws-appsync/node_modules/@redux-offline/redux-offline/lib/types.js”隐式具有“ any”类型。     如果存在,请尝试npm install @types/redux-offline__redux-offline或添加一个包含declare module '@redux-offline/redux-offline/lib/types';

的新声明(.d.ts)文件。

然后我在declare module @redux-offline/redux-offline/lib/types;上添加了typings.d.ts,以检查该错误是否消失了,但我得到了其他答案:

  

/node_modules/aws-appsync/lib/store.d.ts   (13,69):不能使用名称空间“ NetworkCallback”作为类型。

现在,我不知道如何解决上一个错误,因为我没有在互联网上找到很多有关该错误的信息。

我不知道这是否重要,但是packages/web/node_modules/@redux-offline/redux-offline/lib/types.js是只有"use strict";行的文件。

一种可行的解决方案是设置noImplicitAny: false,但我已经读过它,但这不是一个好方法。

谢谢!

1 个答案:

答案 0 :(得分:1)

所以我打开文件/node_modules/aws-appsync/lib/store.d.ts,从@redux-offline/redux-offline/lib/types导入了两种类型:

import { NetInfo, NetworkCallback } from '@redux-offline/redux-offline/lib/types';

然后在typings.d.ts中我刚刚添加:

declare module '@redux-offline/redux-offline/lib/types' {
  export type NetInfo = any;
  export type NetworkCallback = any;
}

问题消失了。