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

时间:2017-09-03 10:31:37

标签: typescript

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

type StringOrNumber = string | number

const obj = {
  foo: 123 as StringOrNumber
}

const { foo } = obj

我没有找到在const number上添加foo类型断言的便捷方法。有两种解决方法:

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

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

const foo = <number>foo2

第一种是在obj类型嵌套且复杂时重写{1}}类型的负担。第二个看起来很奇怪。我假设有这样的语法:

const { <number>foo } = obj

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

1 个答案:

答案 0 :(得分:1)

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