You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行MDN示例代码报错:Property 'Locale' does not exist on typeof Intl 如何解决

错误原因

Intl.Locale是ES2020(ES11)标准新增的内置API,出现这个报错的核心原因是当前运行/编译环境不支持该API,常见场景包括:

  • 浏览器版本过旧,未内置该API实现
  • Node.js版本低于12.x,该版本才首次原生支持Intl.Locale
  • TypeScript项目未配置兼容ES2020+的类型声明库,导致编译阶段识别不到该属性

对应解决方法

前端浏览器场景

如果需要兼容低版本浏览器,安装polyfill补全能力即可:

  1. 安装依赖:npm install @formatjs/intl-locale
  2. 在项目入口文件最顶部引入:import '@formatjs/intl-locale/polyfill'

Node.js场景

优先升级Node.js到12.x及以上的LTS版本,不想升级的话也可以安装上面提到的polyfill兼容。

TypeScript编译报错场景

修改项目根目录的tsconfig.json配置,在compilerOptions的lib字段中加入ES2020及以上的标准库声明:

{
  "compilerOptions": {
    "lib": ["ES2020", "DOM", /* 其他原有配置 */],
    "target": "ES2020" /* 也可以根据实际情况设置为更高版本 */
  }
}

同时确保TypeScript版本不低于3.2,更早的TS版本没有内置Intl.Locale的类型定义。

你提到的测试代码可以在支持ES2020的环境中正常运行,运行后会输出预期的日志结果:

const korean = new Intl.Locale('ko', {
  script: 'Kore',
  region: 'KR',
  hourCycle: 'h24',
  calendar: 'gregory',
});

const japanese = new Intl.Locale('ja-Jpan-JP-u-ca-japanese-hc-h12');

console.log(korean.baseName, japanese.baseName);
// expected output: "ko-Kore-KR" "ja-Jpan-JP"

console.log(korean.hourCycle, japanese.hourCycle);
// expected output: "h24" "h12"

内容的提问来源于stack exchange,提问作者kastaplastislife

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 14:15:02