Импорт изображений машинописного текста - PullRequest
0 голосов
/ 29 июня 2018

Я нашел решение здесь: Импорт изображений Webpack & Typescript

Но я получаю сообщение об ошибке:

[ts]
Types of property 'src' are incompatible.
  Type 'typeof import("*.png")' is not assignable to type 'string | undefined'.
    Type 'typeof import("*.png")' is not assignable to type 'string'.

Полагаю, мне нужно как-то разыграть import, но не могу понять, как. Я делаю это в React. Я видел, что атрибут src определен как string | undefined, поэтому появляется ошибка.

Вот код:

import * as Logo from 'assets/images/logo.png';

HTML:

<img src={Logo} alt="" />

И определение, основанное на вышеупомянутом решении:

declare module "*.png" {
  const value: string;
  export default value;
}

TSconfig:

{
  "compilerOptions": {
    "baseUrl": "./",
    "jsx": "react",
    "lib": ["es5", "es6", "dom"],
    "module": "commonjs",
    "noImplicitAny": false,
    "outDir": "./dist/",
    "sourceMap": true,
    "strictNullChecks": true,
    "target": "es5",
    "typeRoots": [
      "custom_typings"
    ]
  },
  "include": ["./src/**/*.tsx"],
  "exclude": ["dist", "build", "node_modules"]
}

1 Ответ

0 голосов
/ 04 июля 2018

Один из способов избавиться от этой ошибки - изменить файл d.ts следующим образом:

declare module "*.png"

удалить

{
  const value: string;
  export default value;
}

или, альтернативно, вы можете сделать:

declare module "*.png" {
  const value: any;
  export default value;
}

Обновление

Лучшее решение с проверкой типа:

declare module "*.png" {
   const value: any;
   export = value;
}
...