Intl.NumberFormat为什么不能在Safari和Firefox中与单元一起使用?

问题描述 投票:1回答:1

因此,我正在尝试使用给定的here示例来格式化数字。

console.log((16).toLocaleString('en-GB', {
    style: "unit",
    unit: "liter",
    unitDisplay: "long"
}));

我在chrome中尝试过,效果很好。但是,在Safari和Firefox中,我分别收到以下错误Error: style must be either "decimal", "percent", or "currency"Error: invalid value "unit" for option style

从文档中,我认为在查看浏览器兼容性之后,它应该可以在所有浏览器上运行。我试图寻找答案,但找不到任何与此问题有关的信息。有谁知道这是为什么,或者我可能在哪里找到更多信息?

提前感谢!

javascript firefox safari react-intl
1个回答
0
投票

问题来自unit字段的值style

根据ECMA-402, 6th edition, June 2019 ECMAScript® 2019 Internationalization API Specification

此字段的值必须是一条记录,其中必须包含带有三种数字格式样式的名称的字段:“十进制”,“百分比”和“货币”。

根据Draft ECMA-402 / February 27, 2020 ECMAScript® 2020 Internationalization API Specification

此字段的值必须是一个Record,它的字段必须具有四种数字格式样式的名称:“小数”,“百分比”,“货币”,和“单位”

Firefox和Safari正在实施ECMA-402规范的第六版,而Chrome浏览器正在实施同一规范的草稿版本。规范草案可以随时更改,并且不能保证此新的unit值将包含在第七版中。如果您想跨浏览器兼容并且面向未来,则应坚持使用第6版,并等待第7版发布,然后再使用这些新功能。

© www.soinside.com 2019 - 2024. All rights reserved.