TypeScript联合问题(使用两个对象)

voase2hg  于 2023-01-06  发布在  TypeScript
关注(0)|答案(1)|浏览(157)
interface A {
  profile: string;
  name: string;
  c: number;
  d: number;
}

interface B {
  title: string;
  profile: string;
  a: number;
  b: number;
}

function abFunc(obj: B | A) {
  return obj.name || obj.title
}

和上面的接口一样,有数据A或B,上面的数据也有重叠的属性。
我们应该如何定义下面函数中的类型?
'阿|使用了B ',因此只有重复的特性可用。

错误消息

类型"B"上不存在属性"name|类型"B"上不存在属性"name"。

qco9c6ql

qco9c6ql1#

您需要区分并集,例如使用运算符in

function abFunc(obj: B | A) {
  return 'name' in obj ? obj.name : obj.title
}

Playground

相关问题