@formatjs/utils

中文文档
2.2.12发布于 2026/08/30MITTypeScriptES Module构建来源已验证近 30 天下载 1.8万

Collection of useful intl utilities

原始使用文档
文档目录8 节
  1. Installation
  2. Features
  3. API
  4. Country Codes
  5. Currency
  6. Locale
  7. Timezone
  8. License

@formatjs/utils

Collection of useful internationalization (i18n) utilities for working with locales, countries, currencies, and timezones.

Installation

npm install @formatjs/utils

Features

  • Country code canonicalization (ISO 3166)
  • Default currency lookup by country
  • Currency minor units and scale calculations (ISO 4217)
  • Default locale detection
  • Default timezone detection

API

Country Codes

canonicalizeCountryCode(alpha3OrAlpha2?: string): string | undefined

Canonicalize a country code to an ISO 3166 alpha-2 country code (uppercase).

import {canonicalizeCountryCode} from '@formatjs/utils'

canonicalizeCountryCode('usa') // 'US'
canonicalizeCountryCode('USA') // 'US'
canonicalizeCountryCode('us') // 'US'
canonicalizeCountryCode('US') // 'US'

Currency

defaultCurrency(countryCode?: string): string

Look up the default currency for a country code. Returns USD if not found.

import {defaultCurrency} from '@formatjs/utils'

defaultCurrency('US') // 'USD'
defaultCurrency('GB') // 'GBP'
defaultCurrency('JP') // 'JPY'

countriesUsingDefaultCurrency(currencyCode: string): string[]

Look up countries that use a specific currency as their default.

import {countriesUsingDefaultCurrency} from '@formatjs/utils'

countriesUsingDefaultCurrency('EUR') // ['AT', 'BE', 'CY', 'DE', 'EE', ...]
countriesUsingDefaultCurrency('USD') // ['US', 'EC', 'SV', ...]

currencyMinorScale(currencyCode: string): number

Returns the minor unit scale for a given ISO 4217 currency code. The minor unit scale is the power of 10 representing the number of decimal places used for the currency.

import {currencyMinorScale} from '@formatjs/utils'

currencyMinorScale('USD') // 100 (2 decimal places)
currencyMinorScale('JPY') // 1 (0 decimal places)
currencyMinorScale('BHD') // 1000 (3 decimal places)

Locale

defaultLocale(): string

Returns the default locale for the current environment.

import {defaultLocale} from '@formatjs/utils'

defaultLocale() // e.g., 'en-US'

Timezone

defaultTimezone(): string

Returns the default timezone for the current environment.

import {defaultTimezone} from '@formatjs/utils'

defaultTimezone() // e.g., 'America/New_York'

License

MIT

版本与发布记录

@formatjs/utils 共发布 45 个版本,首次发布于 2024/07/05;过去 12 个月发布了 21 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.2.12latest2026/08/302 个月前
2.2.112026/07/114 个月前
2.2.102026/06/045 个月前
2.2.92026/05/156 个月前
2.2.82026/05/126 个月前
2.2.72026/05/066 个月前

关于 @formatjs/utils 的常见问题

@formatjs/utils 是什么?

Collection of useful intl utilities

如何安装 @formatjs/utils?

在项目目录运行 npm install @formatjs/utils,或使用 pnpm add / yarn add / bun add。

@formatjs/utils 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@formatjs/utils 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@formatjs/utils 可以商用吗?

@formatjs/utils 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@formatjs/utils 的下载量有多少?

根据 npm 官方下载统计,@formatjs/utils 在 2026/10/16 – 2026/11/14 这 30 天内被下载 18,394 次,日均约 613 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@formatjs/utils 还在维护吗?

最新版本 2.2.12 发布于 2026/08/30(2 个月前);至今共发布 45 个版本,其中过去 12 个月发布了 21 个;首次发布于 2024/07/05。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。