gpt4 book ai didi

javascript - Edge 上不存在 Intl.NumberFormat.formatToParts

转载 作者:行者123 更新时间:2023-11-29 23:01:26 25 4
gpt4 key购买 nike

正如您在下面看到的,Intl.NumberFormat.formatToParts 似乎从 Microsoft Edge 中丢失了: formatToParts in Microsoft Edge

然而,MDNCanIUse告诉我我可以...

我该怎么办?我似乎找不到任何网站讨论这个问题,也找不到 polyfill(编辑:MDN 上实际上提供了 polyfill,但正如我在最后一句话中所说,我对这种方法的原因更感兴趣缺少,而 MDN 和 CanIUse 都说它在 Edge 上可用。

我是这样使用它的:

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

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

(我所做的只是使用适当的空格字符而不是 unicode 默认字符,这对我的客户来说太 slim 了)

我知道我可以解决这个问题(执行基本格式,然后自己替换 unicode 空间,或者实现一个 polyfill),但我更感兴趣的是这个方法在 Edge 上似乎不存在,而地球上的每个人似乎都相信它确实如此。

感谢任何输入:)

亲切的问候,

最佳答案

Edge 确实缺少这些方法:

console.log(typeof Intl.NumberFormat.prototype.formatToParts);
console.log(typeof Intl.DateTimeFormat.prototype.formatToParts);
将原型(prototype)属性类型列为 Firefox 中的 function 和 Edge 中的 undefined

可能 MDN 文章被 Microsoft 在 TypeScript 中键入函数(这与它们在 Edge 中实现无关)和 listing the issue as fixed 误导了.


请注意,关于 formatToParts 的 MSDN 文章的谷歌链接现在只需重定向到 MDN。


有关 MDN 上 Edge 支持列表的更新 (https://github.com/mdn/browser-compat-data/pull/3769)(由 foolip 在评论中报告)。

测试和调查确认 formatFromParts 支持已添加到 Edge 18 中.

然而,截至 2019 年 4 月 9 日(昨天),这还没有通过 Windows 更新推送到我的机器上,并且 Edge 在(汉堡点 > 设置 > 关于这个应用程序)。谷歌搜索“Windows 1810 是否已通过 Windows 更新推送”揭示了一段麻烦的历史,这足以解释为什么我仍在运行 Win 1803 和 Edge 17。

我建议 support page on MDN将 Edge 支持的"is"替换为“18”以消除混淆会有所帮助。

关于javascript - Edge 上不存在 Intl.NumberFormat.formatToParts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55527585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com