出现it does not work in Stackblitz,但是Object.values()
可以在Angular项目中普遍使用吗?
IIUC Angular包括CoreJS,它的目的是让Object.values()
之类的东西在所有浏览器中都可用吗?
答案 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