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

TypeScript Playground中解构赋值遇'name'常量赋值错误排查

为什么TypeScript Playground中使用name变量会引发冲突?

你碰到的问题根源是浏览器DOM环境的全局name变量——这个变量挂载在全局window对象上,早期用来定义窗口名称,但现在已经被DOM标准标记为废弃状态。

对应你收到的错误:

  • 错误6385提示name已废弃:因为window.name属于被淘汰的API,TS会主动提示你避免使用
  • 错误2588提示无法赋值给常量:全局的window.name在TS的类型定义里被视为只读标识符,你尝试用let name声明并解构赋值,本质是试图覆盖这个全局只读变量,所以触发报错

换成userName这类唯一名称后没问题,是因为这些名称不会和DOM全局标识符冲突,TS会将它们当作局部变量处理。

除了name,还有不少常见标识符会和DOM全局变量冲突,比如:

  • window、document、navigator、location、history这些核心DOM对象
  • alert、confirm、prompt这类弹窗方法
  • console、setTimeout、setInterval这类常用全局工具

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 18:55:18