可以在Angular项目中使用Object.values()吗?

时间:2018-09-17 20:55:00

标签: angular typescript es2017

出现it does not work in Stackblitz,但是Object.values()可以在Angular项目中普遍使用吗?

IIUC Angular包括CoreJS,它的目的是让Object.values()之类的东西在所有浏览器中都可用吗?

2 个答案:

答案 0 :(得分:1)

取决于您要定位的浏览器。在不受支持的浏览器中,它将无法正常工作。您可以找到支持的浏览器列表here

话虽如此,您仍然可以通过使用Polyfills在较旧的浏览器中使用它。您可以找到这些填充here

Polyfills用于代替JS,而JS不能作为浏览器的一部分使用。如果使用了lib中的tsconfig,它将把TypeScript编译/转换为lib数组中指定的JavaScript版本。因此,将lib: "es2017"添加到tsconfig意味着它将无法在不隐式支持ES2017的浏览器上运行。

但是,添加Polyfill意味着它也可以在不支持该脚本的浏览器上使用。

答案 1 :(得分:1)

为了使打字稿能够识别Object.values,开发人员应将其添加到tsconfig.json compilerOptions: {lib: ["esnext"]}。 Stackblitz根本没有此设置。

Angular绝对可以使用此功能,因为现代浏览器(一如既往的旧IE除外)是well supported