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

Node.js项目迁移TypeScript报TS2300: Duplicate identifier 'string'错误求助

问题原因

该报错和import、require混用完全无关,是解构参数的类型标注语法错误导致的。

你写的{ user_id:string }在JavaScript/TypeScript的对象解构语法中,默认语义是「将解构得到的user_id属性值重命名为string变量」,而非给user_id标注string类型。此时你相当于在函数参数作用域内声明了一个名为string的标识符,而string是TypeScript内置的基础类型名,自然触发「重复标识符」报错。

修复方案

如果要给解构参数标注类型,需要将类型定义写在整个解构结构的后方,正确写法如下:

// 写法1:内联标注类型
socket.on('login', async function ({ user_id }: { user_id: string }) {
  // 原有逻辑
})

如果参数较多,也可以提前定义类型接口提升可读性:

// 写法2:提前定义参数类型
interface LoginPayload {
  user_id: string
  // 可补充其他login事件携带的参数字段
}

socket.on('login', async function ({ user_id }: LoginPayload) {
  // 原有逻辑
})

补充说明

你之前尝试的安装类型声明包、调整tsconfig.json配置等操作,都是针对全局类型声明重复的场景,和本次的语法错误不匹配,因此无法生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 12:27:03