首页 > 解决方案 > 有没有办法描述 TypeScript 中两个参数之间的关系?

问题描述

假设有一个函数f接受两个参数a: Ab: B,并且A具有prop类型的属性B

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

interface B {
  ...
}

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

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

IEa.prop === b

标签: typescripttypes

解决方案


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


推荐阅读