typescript - 在 Parcel 2 中从 Javascript 导入非代码资产 (.png) 显示 ts 错误
问题描述
我正在使用Parcel v2捆绑器。它说以下关于导入静态文件:
如果您想从 Javascript 将 url 导入到图像(或声音文件等),您需要在模块说明符之前添加 url: (在插件配置中阅读有关命名管道的更多信息)
我已经尝试添加url:
以及 v1 中的标准方法。图像已正确捆绑,但我不断收到此 ts 错误:
找不到模块 'url:../assets/parcel.png' 或其对应的类型声明。ts(2307)
我有以下内容tsconfig.json
:
{
"compilerOptions": {
"jsx": "react",
},
}
由于 Parcel 捆绑没有问题,我假设这与一些缺少的 TypeScript 配置有关。请您确认一下好吗?
解决方案
基本上,这就是正在发生的事情,来自TypeScript:Handbook,Working with Other JavaScript Libraries:
为了描述不是用 TypeScript 编写的库的形状,我们需要声明库公开的 API。
我们将未定义实现的声明称为“环境”。通常,这些是在 .d.ts 文件中定义的。如果您熟悉 C/C++,您可以将这些视为 .h 文件。
.d.ts
使用以下内容在根目录中创建一个应该可以完成工作:
declare module 'url:*' {
export default string;
}
有关任何其他问题或问题,请参阅 Parcel 的 Github 中的此讨论。
推荐阅读
- apache-kafka - 了解kafka中间件通信
- python - 如何在同一个列表中有两个不同的排序顺序?
- mysql - 如何在 MySQL Workbench 8.0.14 中修改 mysqldump 命令参数?
- chromecast - 带有 Widevine DRM 的 Chromecast CAF
- conditional - Maximo 处理规则
- ubuntu - 如何更改仪表板管理员
- sql-server - 尝试安装 sql server express 2014 或 2008 时如何修复“库未注册”
- r - 尽管投影相似,但光栅和形状未对齐
- git-lfs - git-lfs checkout 旧版本的二进制文件
- r - 在输入中使用 fread 函数和错误