打字稿图像导入

新手上路,请多包涵

我在这里找到了一个解决方案: 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"]
}

原文由 Mario Petrovic 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 444
1 个回答

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

原文由 Piyush Zalani 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进