Intl.NumberFormat.formatToParts не существует в Edge - PullRequest
2 голосов
/ 05 апреля 2019

Как вы можете видеть ниже, Intl.NumberFormat.formatToParts, похоже, отсутствует в Microsoft Edge: formatToParts in Microsoft Edge

Однако оба MDN и CanIUse говорят мне, что я могу ...

Что я должен делать? Кажется, я не могу найти ни одного веб-сайта, рассказывающего об этой проблеме, и при этом я не могу найти полизаполнение (РЕДАКТИРОВАТЬ: полифилл фактически доступен в MDN, но, как я сказал в моей последней фразе, меня больше интересуют причины, по которым этот метод отсутствует, тогда как MDN и CanIUse говорят, что он доступен в Edge).

Я использую это так:

return (_numberFormat as any).formatToParts(val).map(({type, value}) => {
    if (type === 'group')
        return ' ';

    return value;
}).reduce((string, part) => string + part);

(все, что я делаю, это использую надлежащий пробел вместо символа по умолчанию в Юникоде, который слишком мал для моего клиента)

Я знаю, что мог бы обойти эту проблему (выполняя базовый формат и самостоятельно заменяя пространство юникода или реализуя полифилл), но я гораздо более заинтригован тем фактом, что этот метод, кажется, не существует в Edge, тогда как все на Земле, похоже, убеждены в этом.

Любой вклад приветствуется:)

С уважением,

1 Ответ

1 голос
/ 05 апреля 2019

Методы действительно отсутствуют в Edge:

console.log(typeof Intl.NumberFormat.prototype.formatToParts);
console.log(typeof Intl.DateTimeFormat.prototype.formatToParts);
перечисляет типы свойств прототипа как function в Firefox и undefined в Edge.

Возможно статья MDN была введена в заблуждение Microsoft, набрав функциив TypeScript (который не имеет ничего общего с их реализацией в Edge) и с указанием исправленной проблемы .


Обратите внимание, что ссылки Google для статей MSDN на formatToParts теперь просто перенаправляются наMDN.


Обновление относительно списка поддержки Edge на MDN (https://github.com/mdn/browser-compat-data/pull/3769) (сообщается в комментарии от foolip).

Проверка и расследование подтверждаютПоддержка formatFromParts была добавлена ​​в Edge 18 .

Однако это не было перенесено на мою машину через Центр обновления Windows по состоянию на 09 апреля 2019 (вчера), и Edge показывает информацию о своей версиикак «Microsoft Edge 42.17134.1.0 EdgeHTML 17.134» в разделе (точки для гамбургера> настройки> об этом приложении). При поиске в Google «Windows 1810 был пропущен через обновление Windows», обнаруживается неприятная история, котораяЕсли объяснить, почему я все еще использую Win 1803 и Edge 17.

, я предлагаю воспользоваться страницей поддержки в MDN , заменив "yes" для поддержки Edge на "18".чтобы устранить путаницу.

...