typescript 无法安装Kepler React -类型脚本

voj3qocg  于 2022-11-18  发布在  TypeScript
关注(0)|答案(2)|浏览(140)

我这样安装了Kepler.g:

npm i kepler.gl

它被加到我的包裹里了。杰森:

"kepler.gl": "^2.1.2"

但是,如果我尝试导入:

import keplerGlReducer from "kepler.gl/reducers";

我收到一个错误

Could not find a declaration file for module 'kepler.gl/reducers'. '/Users/grannyandsmith/web/web-admin/node_modules/kepler.gl/reducers.js' implicitly has an 'any' type.
  Try `npm install @types/kepler.gl` if it exists or add a new declaration (.d.ts) file containing `declare module 'kepler.gl/reducers';`ts(7016)

我也试过

npm install @types/kepler.gl

但正如预期的那样,它给出了npm ERR! code E404 npm ERR! 404 Not Found - GET https://registry.npmjs.org/@types%2fkepler.gl - Not found
我该如何解决这个问题?
编辑:
tsconfig文件:

{
  "compilerOptions": {
    "target": "es5",
    "lib": [
      "dom",
      "dom.iterable",
      "esnext"
    ],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "preserve",
    "typeRoots": ["types/global.d.ts"]
  },
  "include": [
    "src"
  ]
}
kpbwa7wx

kpbwa7wx1#

如果类型不适用于您正在拉入的特定库。以下是两个选项。

  • 自己添加输入(这可能是一个痛苦,因为你必须了解完整的API)。这样做的好处是所有的输入都可用。
  • 另一个选择是创建一个声明文件*d.ts,在这里你让TS知道,嘿,我知道我在做什么。缺点是你没有可用的类型,自动完成也不起作用。
    @types/index.d.ts(需要让TS知道在此处查找类型)
declare module 'kepler.gl/reducers';
axzmvihb

axzmvihb2#

我使用了Sushanth建议的类似方法。

declare module "kepler.gl";
declare module "kepler.gl/processors";
declare module "kepler.gl/actions";
declare module "kepler.gl/reducers";

并在我的tsconfig.json文件中添加了"typeRoots": ["src/types", "node_modules/@types"],以允许TS查找我的自定义声明

相关问题