当前位置: 首页 > 知识库问答 >
问题:

javascript - ts 类型转换 as number 为何还是string?

柯轶
2024-01-21

关于ts as number 依旧是string 的问题

const props = defineProps<{group: number }>()getDictGroup(props.group)export const getDictGroup = async (sid: number) => {  const dict = await getDict()  console.info(typeof sid)  sid = sid as number  console.info(typeof (sid))  console.info(typeof (sid as number))}

我这里代码已经在每一个步骤已经声明了是 number 但是依旧打印出来时是string

但是如果我使用 parseInt(sid) 又会提示我number 类型的参数不能赋值于 string

所以 类型转换是怎么转换的呢

ts 正确的类型转换

共有3个答案

吕宸
2024-01-21

我大概知道问题了,是

// 这里是string
<DictCom group="1"></DictCom>

// 这里是number
<DictCom :group="1"></DictCom>

这个ts 它不会自动转换下 as number 失败 赋值为0 怎么写呢

吴展
2024-01-21

ts 的类型转换 as 是骗编译器的,不会真的在运行时进行类型转换

你要类型转换应该这么写:

let n = 12345n = String(n)console.log(n) // "12345"
上官正志
2024-01-21

在 TypeScript 中,类型转换是通过使用 as 关键字来完成的。在你的代码中,你试图将 sid 转换为 number 类型,但是你遇到了问题,即使进行了类型转换,sid 的类型仍然被视为 string

首先,需要明确的是,TypeScript 的类型转换并不会改变变量的实际值或其在内存中的表示。它只是一种告诉 TypeScript 编译器变量应该被视为什么类型的机制。因此,即使你使用了 as 关键字,sid 的实际值仍然是 string 类型的。

在你的情况下,你可能需要在使用 sid 之前将其转换为 number 类型。你可以使用 parseInt()Number() 函数来完成这个操作。这两个函数都可以将字符串转换为数字,但它们的行为略有不同。

下面是你可以尝试的代码示例:

const props = defineProps<{group: number }>()getDictGroup(props.group)export const getDictGroup = async (sid: string) => {  const dict = await getDict()  console.info(typeof sid)  sid = Number(sid) // 使用 Number() 函数进行转换  console.info(typeof (sid))  console.info(typeof (sid as number))}

在这个示例中,我假设 props.group 的类型是 string,这是因为你提到即使你使用了 as 关键字,sid 的类型仍然被视为 string。如果你的意图是将 sid 的类型视为 number,那么你可能需要更改函数的参数类型或函数的实现方式。

 类似资料:
  • 问题内容: 我正在寻找在Spring MVC中绑定和转换数据的最简单方法。如果可能,不进行任何xml配置。 到目前为止,我一直在像这样使用PropertyEditors: 和 很简单:两个转换都在同一个类中定义,并且绑定很简单。如果我想在所有控制器之间进行常规绑定,则仍可以在xml config中添加3行。 但是Spring 3.x引入了一种使用Converters的新方法: 在Spring容器中

  • 我正在寻找在Spring MVC中绑定和转换数据的最简单和最简单的方法。如果可能,不进行任何xml配置。 但是Spring3.x引入了一种新的方法,使用转换器: 在Spring容器中,该系统可用作PropertyEditors的替代方案 所以假设我想使用转换器,因为它是“最新的替代方案”。我必须创建两个转换器: 有了这些缺点,为什么还要使用转换器呢?我是不是漏掉了什么?还有其他我不知道的把戏吗?

  • 这里的 create 方法参数的类型理想状态下应该是 ParamsA | ParamsB,这里为什么会是 ParamsA & ParamsB 在线查看代码

  • 主要内容:1. JS 隐式类型转换,2. JS 强制类型转换JavaScript  中有五种基本数据类型(其中包括 String、Number、Boolean、Function、Symbol)、三种对象类型(其中包括 Object、Date、Array)和两种特殊类型(其中包括 Null、Undefined)。不同的类型之间运算需要先对数据的类型进行转换,类型转换是将一种数据类型转换为另一种数据类型的过程,在日常开发中,我们会经常用到。 在 JavaScr

  • 本文向大家介绍javaScript把其它类型转换为Number类型,包括了javaScript把其它类型转换为Number类型的使用技巧和注意事项,需要的朋友参考一下 一:基本类型 字符串 把字符串转换为数字,只要字符串中包含任意一个非有效数字字符(第一个点除外)结果都是NaN,空字符串会变为数字零 布尔 null和undefined 二:引用数据类型 把引用数据类型转换为数字是先把它基于toSt

  • 后台返回的数据类型是一个字符串数组