You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular9升级时polyfills.ts报Element类型无msMatchesSelector属性错误

解决方案

你遇到的是TypeScript全局类型声明未生效的问题,Angular9默认的tsconfig配置可能未自动加载你新增的自定义类型定义,按以下步骤操作即可解决:

  • 第一步:修改你创建的dom.ie.d.ts文件内容,将接口声明包裹在全局声明块内,避免被识别为模块内局部类型,修正后的代码如下:
declare global {
  interface Element {
    msMatchesSelector(selectors: string): boolean;
  }
}
// 加空导出将文件标记为模块,确保全局声明生效
export {};
  • 第二步:打开项目根目录下的tsconfig.app.json,检查include配置项,确保已经包含了自定义类型文件的路径,示例配置如下:
{
  "include": [
    "src/**/*.ts",
    "src/**/*.d.ts"
  ]
}

如果之前include数组里没有src/**/*.d.ts,加上后重启开发服务或者重新执行编译即可。

  • 临时应急方案:如果只需要快速跳过报错完成编译,可以在调用msMatchesSelector的位置使用类型断言,写法如下:
// 替换为你实际的调用代码
const isMatch = (element as any).msMatchesSelector('.my-selector');

注意:类型断言只是临时跳过类型检查,优先使用前两种方案完善类型定义。

内容的提问来源于stack exchange,提问作者hullunist

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 18:15:03