在Parcel 2中从JavaScript导入非代码资产.png会显示ts错误

问题描述

我正在使用Parcel v2捆绑器。它说以下有关导入静态文件的信息:

如果要将URL从Java脚本导入到图像(或声音文件等),则需要在url:之前添加到模块说明符(有关Plugin Configuration中命名管道的更多信息)

我尝试添加url:以及v1中的标准方法图片已正确捆绑,但我不断收到此ts错误

找不到模块'url:../ assets / parcel.png'或其对应的类型声明。 ts(2307)

error ts(2307) is VSCode

我有以下tsconfig.json

{
    "compilerOptions": {
        "jsx": "react",},}

由于Parcel捆绑包没有问题,所以我认为这与某些缺少的TypeScript配置有关。您能确认一下吗?

解决方法

基本上,这是从docs开始发生的事情:

要描述不是用TypeScript编写的库的形状,我们需要声明该库公开的API。

我们将没有定义实现的声明称为“环境”。通常,这些文件在.d.ts文件中定义。如果您熟悉C / C ++,则可以将它们视为.h文件。

在根目录中创建具有以下内容的.d.ts即可完成工作:

declare module 'url:*' {
  export default string;
}

如有其他疑问或问题,请参阅Parcel Github中的TypeScript: Handbook,Working with Other JavaScript Libraries