Angular9迁移后未加载环境定义

Angular9迁移后未加载环境定义,angular,typescript-typings,typescript-3.6,Angular,Typescript Typings,Typescript 3.6,我刚把一个项目从8号迁移到9号。 迁移成功了,但从那时起,编译器似乎不再接受我的环境输入 我的vendor.d.ts文件如下所示: interface JQuery { select2(p?: any): JQuery; trumbowyg(options?: TrumbowygOptions | any, ...any): JQuery; } interface TrumbowygOptions { btns: string[][]; autogrow?: boolean;

我刚把一个项目从8号迁移到9号。 迁移成功了,但从那时起,编译器似乎不再接受我的环境输入

我的vendor.d.ts文件如下所示:

interface JQuery {
  select2(p?: any): JQuery;
  trumbowyg(options?: TrumbowygOptions | any, ...any): JQuery;
}
interface TrumbowygOptions {
  btns: string[][];
  autogrow?: boolean;
  autogrowOnEnter?: boolean;
  svgPath?: string;
  resetCss: boolean;
}
它在我的maintsconfig.json中引用如下:

 "typeRoots": [
      "node_modules/@types",
      "src/app/vendor.d.ts"
    ],
我经常遇到以下错误:

error TS2551: Property 'select2' does not exist on type 'JQuery<HTMLElement>'. Did you mean 'select'?

72     this._multiSelectJQuery.select2({ theme: 'bootstrap' });
                               ~~~~~~~
错误TS2551:类型“JQuery”上不存在属性“select2”。你是说“选择”吗?
72这个._multiSelectJQuery.select2({theme:'bootstrap'});
~~~~~~~
我发现TS 3.6对环境类型定义引入了更严格的检查。我做了各种各样的测试,比如使用declare关键字()

,如下所述:

在mytsconfig.app.json中添加以下代码片段解决了问题:

"include": ["**/*.d.ts"]