1

我们正在将我们的系统升级到 Angular 9.1.1,它具有 Typescript 3.8.3。@angular-devkit/build-angular@0.901.1 在下面使用 core-js@3.6.4。

我们想开始使用 Typescript 中的可选链接功能,而不是 lodash _.get,例如

object?.a?.b?.c

rather than
_.get(object, 'a.b.c', 'default');

但是,我们仍然需要支持 30% 的 IE 用户。有谁知道IE是否默认支持?如果没有,我们是否可以打开支持,例如在 polyfill.ts 中添加配置?我搜索了 core-js 并没有看到任何与可选链接相关的内容。

非常感谢!

4

2 回答 2

2

可选链操作符处于第 4 阶段,尚未达到跨浏览器稳定性。IE 不支持它。

你可以尝试用@babel/plugin-proposal-optional-chaining它来改造它。它可以将可选链接运算符转换为一系列 nil 检查。

于 2020-04-21T02:37:49.750 回答
0

请参阅 TypeScript Playground 上的此示例:

const obj: {
    outer?: {
        inner?: string
    }
} = {};

console.log(obj?.outer?.inner);

游乐场链接

即使以 ES2017 为目标,可选链操作符也被编译为所有当前浏览器都能理解的基本 JS 代码。

所以不用担心:)

于 2020-07-24T16:29:08.370 回答