TypeScript中unknown类型断言为string后与数字相加结果疑问
TypeScript类型断言为何未触发字符串拼接?
你的核心误区在于混淆了TypeScript编译时类型断言和JavaScript运行时类型转换的区别:
- 类型断言
as string仅作用于编译阶段,它只是告诉TypeScript编译器「把这个变量当成string类型处理,别报错」,但完全不会改变变量在JavaScript运行时的实际类型和值。 - 你的代码运行时,
myVar的实际值仍是数字5,执行5 + 5自然是数字加法,结果为10,而非字符串拼接。
如果要得到预期的55,需要在运行时真正将变量转换为字符串,比如使用String()函数或toString()方法:
let myVar: unknown; myVar = 5; console.log(String(myVar) + 5); // 输出 "55"
内容的提问来源于stack exchange,提问作者Umar Adkhamov
相关产品推荐
相关产品推荐

