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

有没有办法描述TypeScript中两个参数之间的关系?,typescript,types,Typescript,Types,假设有一个函数f接受两个参数a:a和b:b,其中a具有b类型的属性prop: interface A { ... prop: B ... } interface B { ... } function f(a: A, b: B): R { ... } TypeScript中是否有一种方法可以通过类型系统强制第二个参数指向与第一个参数中的属性prop相同类型的B对象 i、 e.a.prop===b我不想知道您以那种方式发送它的原因,但从技术上讲,您想要的是不可能的,因为在编

假设有一个函数
f
接受两个参数
a:a
b:b
,其中
a
具有
b
类型的属性
prop

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

interface B {
  ...
}

function f(a: A, b: B): R {
  ...
}
TypeScript中是否有一种方法可以通过类型系统强制第二个参数指向与第一个参数中的属性
prop
相同类型的
B
对象


i、 e.
a.prop===b

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

可以定义函数,如
f(A:A):R{…}
,并在函数内部使用
A.prop
,而不是将其作为参数传递?(我假设您可以更改函数定义。如果不可以,请忽略这一点)我不想知道您以那种方式发送它的原因,但您想要的在技术上是不可能的,因为在编译时您只能检查类型而不能检查对象值。您只能在运行时检查值-这意味着您需要在函数中使用“if”来检查A prop和B的相等性。@Ismar完全有意义,谢谢!如果你把它转换成一个正确的答案,我会接受它。Fan事实:StackOverflow字面上给我显示了一个通知“你不能接受少于1分钟的答案”。然后我看到了“你可以在18秒内接受它”。我不知道他们为什么这么做:再次感谢你!