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 

请问应该如何写呢?

阅读 486
1 个回答

简单点: 直接用联合类型

type ClassItem = {
  id: string,
  shape: 'class'
} | {
  id: string,
  shape: 'extends'|'composition'|'implements'|'aggregation'|'association',
  source: string,
  target: string 
}
推荐问题
logo
Microsoft
子站问答
访问
宣传栏