Машинопись: набор сторонней библиотеки. «XXX» относится только к типу, но здесь используется в качестве значения - PullRequest
0 голосов
/ 02 апреля 2020

Я использую стороннюю библиотеку, у которой нет типов, поэтому я хочу создать для нее файл объявления:

declare module 'autocomplete' {
  export interface AutocompleteField {
    name: string;
    placeholder?: boolean | string;
    label: ReactNode;
    onSelect: (event: Event) => void;
    validationFirst: boolean;
  }
}

этот файл находится в /@types

Я импортирую это для моего компонента React:

import { AutocompleteField } from 'autocomplete';

Но когда я пытаюсь использовать этот компонент AutocompleteField:

const MyComponent = () => {
  return (
    <AutocompleteField
      name="supplier_recipient"
      placeholder="Start typing"
      label=""
      onSelect={onChange}
      validationFirst
    />
  )
}

Я получаю эту ошибку:

TS2693: 'AutocompleteField' only refers to a type, but is being used as a value here.

enter image description here

Это мое tsconfig.ts:

{
  "compilerOptions": {
    "target": "es5",
    "lib": [
      "dom",
      "dom.iterable",
      "esnext"
    ],
    "baseUrl": ".",
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "react"
  },
  "include": [
    "src/**/*",
    "./@types"
  ],
  "exclude": [
    "node_modules",
  ]
}

Любые намеки на это будут высоко оценены.

...