Angular 9和Typescript 3.8.3是否默认支持IE中的可选链接而不进行polyfill(core js)更改?
我们正在将系统升级到angular 9.1.1,它有Typescript 3.8.3。@angular devkit/build-angular@0.901.1使用核心-js@3.6.4下面 我们希望在Typescript中开始使用可选的链接功能,而不是lodash_u2;.get e、 g 然而,我们仍然需要支持30%的IE用户。有人知道它是否默认为IE支持吗?如果没有,我们是否可以启用支持,例如在polyfill.ts中添加configure?我搜索了core js,没有看到任何与可选链接相关的内容Angular 9和Typescript 3.8.3是否默认支持IE中的可选链接而不进行polyfill(core js)更改?,typescript,internet-explorer,polyfills,angular9,optional-chaining,Typescript,Internet Explorer,Polyfills,Angular9,Optional Chaining,我们正在将系统升级到angular 9.1.1,它有Typescript 3.8.3。@angular devkit/build-angular@0.901.1使用核心-js@3.6.4下面 我们希望在Typescript中开始使用可选的链接功能,而不是lodash_u2;.get e、 g 然而,我们仍然需要支持30%的IE用户。有人知道它是否默认为IE支持吗?如果没有,我们是否可以启用支持,例如在polyfill.ts中添加configure?我搜索了core js,没有看到任何与可选链接相
非常感谢 可选的链接操作符在其中尚未达到跨浏览器稳定性。是的
您可以尝试使用来转换它。它可以将可选的链接运算符转换为一系列的零检查。请参见TypeScript上的示例:
const obj: {
outer?: {
inner?: string
}
} = {};
console.log(obj?.outer?.inner);
即使以ES2017为目标,可选的链接操作符也会编译成所有当前浏览器都能理解的基本JS代码
所以不必担心:)事实证明,如果您使用的是Typescript 3.7或更高版本,则不需要polyfill(根据不支持,它们都可以工作。Typescript必须已转换为正确的JS语法。您可以将其作为答案发布,并将您的答案标记为已接受的答案。它可以在将来帮助其他社区成员解决类似问题。感谢您的理解。
const obj: {
outer?: {
inner?: string
}
} = {};
console.log(obj?.outer?.inner);