typescript在属性值等于特定值的时候,才有更多的属性值,请问如何写呢?

现有如下的type定义:

type ClassItem = {
  id: string,
  shape: 'class' | 'extends' | 'composition' | 'implements' | 'aggregation' | 'association',
  source: string,
  target: string 
}

现在的条件是:shape: 'extends' | 'composition' | 'implements' | 'aggregation' | 'association' 的时候,才有

source: string,
target: string 

请问应该如何写呢?

阅读 487
1 个回答

简单点: 直接用联合类型

type ClassItem = {
  id: string,
  shape: 'class'
} | {
  id: string,
  shape: 'extends'|'composition'|'implements'|'aggregation'|'association',
  source: string,
  target: string 
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏