Как я могу расширить определение типа существующих модулей npm? - PullRequest
0 голосов
/ 10 июля 2020

Я использую recharts для создания диаграмм в моем веб-приложении React. В компоненте «XAxis» повторных диаграмм есть необязательная опора «tickMargin», но определение типа, включенное в пакет npm, не определяет эту опору. Поэтому я попытался добавить эту опору, создав файл определения пользовательского типа (d.ts).

Исходное определение

// {project_folder}/node_modules/recharts/types/cartesian/XAxis.d.ts
export interface Props extends BaseAxisProps {
    // some definitions...
}

Моя страница d.ts

// {project_folder}/@types/recharts/index.d.ts
declare module "recharts" {
  interface BaseAxisProps {
    tickMargin?: number
  }
}

.tsx

import {XAxis} from "recharts"

<XAxis tickMargin={3} />

Но тогда компилятор TS говорит error TS2305: Module '"recharts"' has no exported member 'XAxis'. и для всех других компонентов recharts. Кажется, что мое определение пользовательского типа полностью заменило существующее определение. Я много раз гуглил, но до сих пор не знаю, как решить эту проблему. Как я могу расширить определение типа, не заменяя его? Ниже мой tsconfig. json для справки.

tsconfig. json

{
  "compilerOptions": {
    "target": "es5",
    "lib": ["dom", "ES6"],
    "jsx": "react",
    "outDir": "./tsc/",
    "baseUrl": "./",
    "paths": {
      "/*": ["./*", "./@types/*"],
      "recharts": ["/node_modules/recharts/types/*", "/@types/recharts/*"]
    },
    "esModuleInterop": true,
    "forceConsistentCasingInFileNames": true,
    "resolveJsonModule": true
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...