怎么修改让下面的红线消失?
interface arrType { id?: string | number children?: arrType[]}const getAllRoleId = (arr: arrType[]) => { let returnAll = [] arr.forEach((item) => { returnAll.push(item.id) if (item.children && item.children.length > 0) { getAllRoleId(item.children) } }) return returnAll}
在 ts 里声明数组的时候要同时声明数组元素的类型,否则 ts 会将数组类型推断为unknown[]
。
按照你当前给的代码,returnAll
应该是一个 Array<string | number>
。
不过你的 item.id
可能是 undefined
,需要额外注意一下。
interface arrType { id?: string | number children?: arrType[]}const getAllRoleId = (arr: arrType[]) => { let returnAll:(string | number)[] = [] arr.forEach((item) => { if(item.id) { returnAll.push(item.id) } if (item.children && item.children.length > 0) { getAllRoleId(item.children) } }) return returnAll}
试试
我想解决的是res.Code下面的红线问题 下面是loginApi接口的类型定义: 其中UserType类型的定义: IResponse类型的定义: 为什么Promise的返回值Code,Data,Msg下面都带红线? 代码:
在文件 /src/stores/otpInfos.ts 的第 7 行,TypeScript 报出以下错误(但是执行 pnpm dev 运行是没有任何问题的): 如果没有引用 ".pnpm/@vueuse+shared@9.13.0_vue@3.3.4/node_modules/@vueuse/shared",则无法命名 "useOTPInfosStore" 的推断类型。这很可能不可移植。需要类型注
问题内容: class Node: def append_child(self, node: Node): if node != None: self.first_child = node self.child_nodes += [node] 我该怎么办?因为当我运行它时,它说。 我应该只删除and实例在函数中检查它吗?但是,我该如何访问的属性(我希望它是类的实例)? 我不知道如何在Python,
定义如下 使用 出现下面的报错: 为什么在使用typeof的情况下ts对类型判断还是有问题?平常在消费联合类型的时候,都只需要借助typeof就能达到缩小类型范围的目的,但是这里没有效果,我想问下什么时候会出现这种问题? 我知道解决方案: 通过强制的类型断言来告诉ts这是一个函数 通过is关键字来做类型预测 但是不知道什么时候需要这么去解决,只有报错的时候才会尝试这么去解决,恳求大佬解惑。
代码如下,这是一段示例代码 那段for循环是想过滤有效数据。 问题是这段代码ts报错,代码逻辑没问题,问题的根本出在MenuItem的类型定义上,本意是想定义一个二级级联数据MenuItem,之所以使用T extends string而不是直接写为string,是因为在某些交互函数的参数中,希望将代表command的参数定义一个固定的可选数据CommandType。 当有子级数据的时候,关心的是子
给定一条数据结构(API数组里面的个数是未知的)如下所示 如何推导出类似这样的类型 即 name 作为key, 如果存在table即为boolean类型,否则为unknown类型 ts的大神们,这个该如何写啊,百度,谷歌都折腾了,还问了gpt也不行,就是值推不出来 我写的是这样的