![](/img/trans.png)
[英]Is it possible to use type assertion/cast inside an object destructuring expression?
[英]How to use assertion in destructuring syntax?
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
第一个是当obj
的类型嵌套且复杂时重写其类型的负担。 第二个看起来很奇怪。 我假设这样的语法:
const { <number>foo } = obj
绝对可以帮助我们从嵌套和复杂的解构中断言类型。
根据文档,解构时无法正确转换类型。 显然,除了您提供的解决方法外,没有其他解决方法。
我相信没有办法在解构对象或 arrays 中进行类型断言。
但这里有一个您可以尝试的替代方案。
const { foo, bar } = data;
const baz = foo as string;
// You can use string methods here.
console.log(baz.split(" "));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.