通过网页包在Angular中导入Jquery
本质上,我只想在我的项目中稍后加载jquery,通过使用通过网页包在Angular中导入Jquery,jquery,angular,typescript,webpack,Jquery,Angular,Typescript,Webpack,本质上,我只想在我的项目中稍后加载jquery,通过使用 import(/*webpackChunkName: "jquery" */ "jquery").then(({default: $}) => { 然而,我收到一份: error TS2459: Type 'JQueryStatic' has no property 'default' and no string index signature. 我相信这是由于Typescript,
import(/*webpackChunkName: "jquery" */ "jquery").then(({default: $}) => {
然而,我收到一份:
error TS2459: Type 'JQueryStatic' has no property 'default' and no string index signature.
我相信这是由于Typescript,在Typescript允许的项目中,是否还有其他方法可以导入库
我知道我可以这样做,因为gsap是以这种方式加载的,没有任何问题。如果您确定您期望的导入格式,您可以通过在导入代码中添加类型断言让TS知道:
(import(/*webpackChunkName: "jquery" */ "jquery") as Promise<{default: any}>).then(({default: $}) => {...});
(导入(/*webpackChunkName:“jquery”*/“jquery”)作为承诺);
当然,如果您知道
default
属性的值,您可以在那里键入它,而不是通过使用any
返回丢失类型信息,您需要--esModuleInterop
或至少--alllowSyntheticDefaultImports
它们对应于编译器选项的属性tsconfig.json
中的对象,即{“compilerOptions”:{“esModuleInterop”:true}
这很奇怪,因为我知道这是可行的。确保您的工具是最新的,这应该足够了。确保你的打字稿和加载器是最新的先生,如果我能吻你,我会的。我一定会仔细阅读这些属性。不幸的是,我遇到了一个错误TS2352:无法将类型“Promise”转换为类型“Promise”