登录
首页 >  文章 >  前端

TypeScript 类型转换的困惑:为什么使用 as number 仍然是字符串?

时间:2024-11-14 14:13:04 486浏览 收藏

一分耕耘,一分收获!既然打开了这篇文章《TypeScript 类型转换的困惑:为什么使用 as number 仍然是字符串? 》,就坚持看下去吧!文中内容包含等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!

TypeScript 类型转换的困惑:为什么使用 as number 仍然是字符串?

TypeScript 类型转换中的困惑:为何 as number 仍然是字符串?

在 TypeScript 中,使用 as 进行类型转换可以暂时欺骗编译器,使其认为变量具有不同的类型。然而,这种转换不会在运行时实际发生。

const props = defineProps<{group: number }>()

getDictGroup(props.group)

export const getDictGroup = async (sid: number) => {
  const dict = await getDict()
  console.info(typeof sid) // number
  sid = sid as number
  console.info(typeof (sid)) // string
  console.info(typeof (sid as number)) // string
}

在此示例中,我们声明 sid 为数字类型,但即使使用了 as number 转换,在运行时它仍然是一个字符串。这是因为 as 转换仅在编译时有效。

真正的类型转换应使用以下语法进行:

let n = 12345
n = String(n)
console.log(n) // "12345"

在这种情况下,String(n) 会将数字 n 转换为字符串。最终将打印 "12345",而不是数字。

到这里,我们也就讲完了《TypeScript 类型转换的困惑:为什么使用 as number 仍然是字符串? 》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>