通过网页包在Angular中导入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,

本质上,我只想在我的项目中稍后加载jquery,通过使用

  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”