Typescript 如何在解构语法中使用断言?

Typescript 如何在解构语法中使用断言?,typescript,Typescript,在Typescript中,如何在分解结构时使用断言 type StringOrNumber = string | number const obj = { foo: 123 as StringOrNumber } const { foo } = obj 我没有找到一种方便的方法在constfoo上添加number类型断言。有两种变通办法: // A: const { foo } = obj as { foo: number } // B: const { foo: foo2 } =

在Typescript中,如何在分解结构时使用断言

type StringOrNumber = string | number

const obj = {
  foo: 123 as StringOrNumber
}

const { foo } = obj
我没有找到一种方便的方法在const
foo
上添加
number
类型断言。有两种变通办法:

// A:
const { foo } = obj as { foo: number }

// B:
const { foo: foo2 } = obj

const foo = <number>foo2

绝对可以帮助我们从嵌套和复杂的解构中断言类型。

根据,在解构时无法正确转换类型。显然,除了您提供的解决方法之外,没有其他解决方法。

const{foo:number}=obj?这不起作用,它将取
foo
的值,并将其分配给变量
number
我遇到了同样的问题,调用foo作为
number(foo)
对我来说是个诀窍,告诉TS输出是一个数字。
const { <number>foo } = obj