我正在编写一个 ES6 模块,它依赖于使用 http url 指定的其他 ES6 模块,如下所示:
import { el, mount } from "https://cdnjs.cloudflare.com/ajax/libs/redom/3.26.0/redom.es.js";
const pElem = el("p") // definitely works in Javascript
当我尝试在 Typescript 中翻译我的模块时,出现以下错误:
找不到模块“https://cdnjs.cloudflare.com/ajax/libs/redom/3.26.0/redom.es.js”或其相应的类型声明。
我在用着ts-watch
npm 模块来编译 Typescript,它工作正常,除非我不使用import
from https://...
.
我也知道如果我尝试导入 npm 模块(例如import {el} from "redom"
)它也有效。但我正在写的是一个用于 Web 浏览器的模块,而不是 npm 的模块。出于这个原因,使用webpack
不是一个选择。
感谢@acrazing 的评论,我设法解决了这个问题。就是这样:
在新的 ts 文件中:
declare module 'https://*'
这可以消除 Typescript 编译器尝试读取类型声明的错误。
如果您想将类型声明作为节点依赖项进行访问,请将其粘贴到新的 ts 文件中:
declare module 'https://cdnjs.cloudflare.com/ajax/libs/redom/3.26.0/redom.es.js' {
export * from 'redom'
}
and add redom
package.json 中的依赖项
"dependencies": {
"redom": "3.26.0",
...
},
然后,从本地读取类型声明./node_modules
目录,VSCode 也可以识别类型。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)