如何告诉打字稿值是一个空对象?

时间:2019-05-26 04:55:23

标签: typescript

这是我的代码。

function DD(x: { y: string } | {}) {
  if (x.y) {//error
   console.log("DD jingo");
  }
}

我收到此错误“ {} | {y:string;}”类型中不存在属性“ y”。类型“ {}”中不存在属性“ y”。

我是打字稿新手。怎么说X可以接受一个空对象和{y:string}。

2 个答案:

答案 0 :(得分:3)

您可以使用functionemployee属性标记为可选:

y

答案 1 :(得分:0)

不确定在TypeScript中这是否是一个好的模式,但是您可以在x语句中明确告诉TypeScript您的{ y: string }的值是if类型:

function DD(x: { y: string } | {}) {
  if ((x as {y: string}).y) {
   console.log("DD jingo");
  }
}