我有一个Weapon类,它至少有一个图标.

export default abstract class Weapon {
  icons: string[]; // May be the wrong type to use here

  constructor(iconOrIcons: string | string[]) {
    this.icons = typeof iconOrIcons === 'string' ? [iconOrIcons] : iconOrIcons;
  }
}

每个图标是.webp,我是这样导入它们的:

import icon from '../../../assets/weapons/swords/dagger.webp';
import Sword from './Sword';

export default new Sword(icon);

然而,这些文件只是在我的项目中(甚至没有try 渲染图像),webpack抛出:

Error: Module parse failed: Unexpected character '♦' (1:5)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
(Source code omitted for this binary file)

好的,webpack说得很清楚,我需要一台装载机.但我不清楚如何将装载机添加到angular.json.

也可能是这样,我实际上并不需要/不想导入.webp文件本身,我可以只使用指向这些资源的URL.在这种情况下,理想情况下,我希望有一些更好的方法来声明这些URL,而不仅仅是在我的Weapon个实例上使用任意的字符串文字.

推荐答案

我同意你问题的第二部分.我认为问题出在进口方面,你可能根本不需要进口.

您只需要图像位置,这样就可以在.html中使用它,这可能是真的.所以不用导入(查找TypeScrip类),只需使用字符串变量就可以了?

类似于:

const icon: string = '../../../assets/weapons/swords/dagger.webp';

您所要做的就是将该值传递给.html文件中类似img标记的内容,它将呈现图像.你不应该需要装载机等.

<img src="{{ icon }}" />

谢谢!

PS.至于字符串文字,您可能会遇到类似的情况,但您可以将其设置得更动态,如下所示:

const weaponIconsDirectory: string = '../../../assets/weapons/';
const icon: string = weaponIconsDirectory + weaponName + .'webp';

Typescript相关问答推荐

有没有可能使用redux工具包的中间件同时监听状态的变化和操作

如何设置绝对路径和相对路径的类型?

Typescript泛型类型:按其嵌套属性映射记录列表

通过字符串索引访问对象';S的值时出现文字脚本错误

如何使默认导出与CommonJS兼容

<;T扩展布尔值>;

类型脚本满足将布尔类型转换为文字.这正常吗?

TypeScrip泛型类未提供预期的类型错误

无法将从服务器接收的JSON对象转换为所需的类型,因此可以分析数据

我在Angular 17中的environment.ts文件中得到了一个属性端点错误

如何按属性或数字数组汇总对象数组

专用路由组件不能从挂钩推断类型

从route.参数获取值.订阅提供";无法读取未定义";的属性

对于VUE3,错误XX不存在于从不存在的类型上意味着什么?

VUE 3类型';字符串';不可分配给类型';参考<;字符串&>

在打印脚本中将对象类型转换为数组

基于区分的联合键的回调参数缩小

断言同级为true或抛出错误的Typescript函数

我可以使用对象属性的名称作为对象中的字符串值吗?

如何使用 AWS CDK 扩展默认 ALB 控制器策略?