有没有办法描述TypeScript中两个参数之间的关系?

时间:2019-03-29 13:09:05

标签: typescript types

假定有一个函数f,它带有两个参数a: Ab: B,其中A具有类型prop的属性B

interface A {
  ...
  prop: B
  ...
}

interface B {
  ...
}

function f(a: A, b: B): R {
  ...
}

TypeScript中是否存在一种通过类型系统强制执行的方法,即第二个参数与第一个参数中的属性B指向同一类型prop的对象?

a.prop === b

1 个答案:

答案 0 :(得分:2)

我不想知道以这种方式发送它的原因,但是从技术上讲,所需的东西是不可能的,因为在编译时只能检查类型,而不能检查对象值。您只能在运行时检查的值-这意味着您将需要在函数中使用“ if”来检查A prop和B的相等性。