当前位置: 首页 > 面试题库 >

打字稿图像导入

戈博易
2023-03-14
问题内容

我在这里找到了解决方案: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'.

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

问题答案:

摆脱该错误的一种方法是通过按如下方式修改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;
}


 类似资料:
  • 我正在努力寻找 有什么不同?

  • 问题内容: 我将TypeScript与/一起使用。 对于使用模块,《 TypeScript手册》显示以下语法: 而且文件显示: 我还搜索了MSDN博客,但找不到任何东西。 截至2016年初,哪个更正确?两者之间有什么区别(如果有)? 在哪里可以找到有关要使用的最新语法的信息的最佳来源,以便将来我可以找到此信息? 问题答案: 这些大多是等效的,但有一些限制不是。 创建一个标识符,它是一个 模块对象

  • 1选择 “文件 ”>“导出 ”。 2选择文件位置并输入文件名。 3从 “存储为类型 ”(Windows) 或 “格式 ”(Mac OS) 弹出菜单选择格式。 4单击 “存储 ” (Windows) 或 “导出 ”(Mac OS)。 有关从 Illustrator 导出内容(包括有关不同格式的概述和应使用这些格式的场合)的视频,请参阅 www.adobe.com/go/vid0062_cn。 另请参

  • 我正在使用ES6导入语法并导入一个第三方ES5模块,该模块导出一个未命名函数的单个导出: 因为没有默认导出,而是一个匿名函数输出,我必须像这样导入和使用: 这会产生Typescript错误: 错误TS2349:无法调用其类型缺少调用签名的表达式。类型“typeof”没有兼容的调用签名。 我想我之所以会这样是因为我没有正确键入ES5导入(没有公共键入文件)。当我认为该函数是默认导出时,我有以下定义:

  • 您可以使用 “打开 ”命令、 “置入 ”命令、 “粘贴 ”命令和拖放功能将图稿从 Photoshop (PSD) 文件引入到 Illustrator 中。 Illustrator 支持大部分 Photoshop 数据,包括图层复合、图层、可编辑文本和路径。这意味着可在 Photoshop 和 Illustrator 间传输文件,而不失去编辑图稿的功能。为了能够在两个应用程序之间轻松传输文件,已关闭

  • 问题内容: 我很难尝试导入lodash模块。我已经使用npm + gulp设置了我的项目,并不断碰壁。我尝试过常规lodash,但也尝试过lodash-es。 lodash npm软件包:(在软件包根文件夹中有一个index.js文件) 结果是: lodash-es npm软件包:(在package根文件夹的lodash.js中具有默认输出) 结果是: gulp任务和webstorm都报告相同的问