繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM