typescript - 有没有办法描述 TypeScript 中两个参数之间的关系?
问题描述
假设有一个函数f
接受两个参数a: A
和b: B
,并且A
具有prop
类型的属性B
:
interface A {
...
prop: B
...
}
interface B {
...
}
function f(a: A, b: B): R {
...
}
TypeScript 中是否有办法通过类型系统强制执行,即第二个参数指向与第一个参数B
中的属性相同的类型对象prop
?
IEa.prop === b
解决方案
我不想知道你以这种方式发送它的原因,但你想要的在技术上是不可能的,因为在编译时你只能检查类型而不是对象值。您只能在运行时检查的值 - 这意味着您需要在函数中使用“if”来检查 A 道具和 B 的相等性。
推荐阅读
- javascript - 你会如何推荐我自动化网站数据输入?
- sql - 选择表中可能存在或不存在的列名,并获取空值而不是错误
- angular - 反应形式中的形式
- regex - 使用带有环境变量的 sed 替换文件中的文本
- mongodb - 我可以在 mongodb 的 $push 中使用现有的文档字段值吗?我尝试了以下方法,它不起作用
- java - 用逗号分割字符串,但不包括任何数字的双引号,而只包括字符串
- shell - 如何将 Jenkins 构建中的“params”对象回显到 shell 中的 sed 指令中?
- javascript - highcharts $_post['value'] 不打印图表值
- typescript - 直接返回值 vs 返回期望值的变量
- graphql - 在嵌套对象上具有冲突约束的 Upsert Graphql Mutation