reactjs - typescript 图像导入

标签 reactjs typescript module tsconfig react-tsx

我在这里找到了解决方案:Webpack & Typescript image import

但是我得到了这个错误:

[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'.

我想我需要以某种方式转换导入,但无法弄清楚如何。 我在 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;
}

配置文件:

{
  "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"]
}

最佳答案

消除该错误的方法之一是按如下方式修改 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;
}

关于reactjs - typescript 图像导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51100401/

相关文章:

javascript - react 。为什么 this.state 没有正确更新?

javascript - 更改 react 组件的可见性

javascript - 使用类验证器中的 @MinDate 会导致 TypeError : Cannot read property 'getTime' of undefined?

python - 构建 python 模块,以便可以使用或不使用 -m 开关从命令行运行

python - 在python中在哪里存储日志文件名?

javascript - Typescript 中动态 React 组件的条件类型

javascript - 没有菜单或主布局的 React Router 第一条路线

typescript - 订阅中的变量更改后,Angular 2 View 不会更新

android - 如何在 Nativescript 中显示 base64 字符串并将其绑定(bind)到图像作为源?

Visual-Studio 项目(或解决方案)的 Python 等效项