Можно ли использовать Object.values ​​() в угловых проектах? - PullRequest
0 голосов
/ 17 сентября 2018

Похоже это не работает в Stackblitz , но можно ли вообще Object.values() использовать в проектах Angular?

IIUC Angular включает в себя CoreJS , и цель этого состоит в том, чтобы сделать такие вещи, как Object.values(), доступными во всех браузерах?

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Чтобы машинопись могла распознать Object.values, разработчик должен добавить в tsconfig.json compilerOptions: {lib: ["esnext"]}. Stackblitz просто не имеет этой настройки.

Angular, безусловно, может использовать эту функцию, потому что она хорошо поддерживается современными браузерами (за исключением старого IE, как всегда)

0 голосов
/ 18 сентября 2018

Зависит от того, на какой браузер вы ориентируетесь.Это не будет работать как таковое в неподдерживаемых браузерах.Вы можете найти список поддерживаемых браузеров здесь

При этом вы все равно можете использовать его в старых браузерах, используя Polyfills.Вы можете найти эти полифилы здесь .

Полифилы используются вместо JS, который недоступен как часть браузера.Если используется lib из tsconfig, он собирается скомпилировать / перенести TypeScript в подходящую версию JavaScript, указанную в массиве lib.Поэтому добавление lib: "es2017" к tsconfig будет означать, что оно не будет работать в браузерах, которые неявно поддерживают ES2017.

Но добавление Polyfill вместо этого будет означать, что оно также будет работать в браузерах, которые не поддерживают этот скрипт.

...