如何解决Angular5单页应用在IE11中的TypeError问题?
解决Angular 5在IE11中出现的
find和startswith方法不支持错误 嘿,我之前也踩过这个一模一样的坑!Angular 5确实官方宣称支持IE11,但默认的项目配置里并没有自动引入所有需要的ES6特性兼容补丁,这就是你遇到报错的核心原因——IE11原生完全不支持这些ES6新增的数组、字符串方法,得手动补上兼容代码才行。
下面是一步步的解决步骤:
启用
polyfills.ts里的ES6兼容补丁
打开项目根目录下的src/polyfills.ts文件,找到下面这些被注释掉的引入语句,去掉注释(或者直接添加):// 解决数组find方法不支持的问题 import 'core-js/es6/array'; // 解决字符串startswith方法不支持的问题 import 'core-js/es6/string'; // 建议同时启用对象相关的polyfill,避免其他潜在兼容问题 import 'core-js/es6/object';确保TypeScript编译目标为ES5
打开tsconfig.json文件,检查compilerOptions里的target字段是否设置为es5——IE11只能识别ES5代码,如果之前是es6的话必须修改:{ "compilerOptions": { "target": "es5", // ...其他编译配置项 } }安装对应版本的core-js(如果缺失的话)
Angular 5依赖的是core-js 2.x版本,如果你的项目里没有安装或者版本不对,运行下面的命令安装:npm install core-js@2 --save重新构建并测试
执行项目的构建命令(比如ng build或者ng serve),然后在IE11里重新打开应用,这两个错误应该就彻底消失了。
另外提一句,你之前调整浏览器设置的思路没错,但这类问题本质是代码层面的ES6特性兼容问题,和浏览器设置关系不大,补全polyfill才是根本解决方案。
内容的提问来源于stack exchange,提问作者kovac
相关产品推荐
相关产品推荐

