【发布时间】:2019-03-18 07:05:46
【问题描述】:
我对打字稿比较陌生,它的来龙去脉,我在某种结构上遇到了麻烦。它看起来像这样:
我有一个函数用于将数据提供给时间线组件。函数接收到的数据可以是类型 1 或类型 2。现在这很复杂,类型 1 是一个对象。但是,类型 2 可以是 4 种不同类型中的任何一种
类型 1:{}
type2 : type3 |类型4 |类型5 | 6型
类型 3-6 在结构上略有不同,不能组合。在下面的函数中,isConversion 标志是对 (object: type6) 的检查。该对象内部还有另一个类型为 7 的对象。
type 6: {
...,
type7: {
...,
conversions
}
}
type7 内部是一个名为conversions 的字段,其中包含我需要传递给时间线的数据。
timelineItems = (items: type1 | type2): PropsData => {
const { dataType, isConversion } = this.state
if(isConversion){
const {comments, type7.conversions } = items as type6
return {
comments
type7.conversions
}
}
我有一个解决方法,当我获取数据并将其设置为状态时,我会获取 type7。并使用该值,但我想知道是否有办法获取上述转换对象。
谢谢。
【问题讨论】:
-
我认为我对这个问题的理解不足以冒险回答。如果您通过生成minimal reproducible example 的练习会有所帮助,它可以在像TypeScript Playground 这样的独立环境中展示您的问题。祝你好运!
标签: reactjs typescript reinforced-typings