![]() |
1
5
啊,
type-level equality operator
.@MattmcCutchen想出了一个
solution
涉及通用条件类型,当两个类型完全相等时,它可以很好地检测,而不是互相分配。在一个完美的声音类型系统中,“可相互分配”和“相等”可能是相同的事情,但打字稿不是完美的声音。尤其是,
这里有一个
让我们看看它的工作原理:
好的,这些是不同类型的。可能还有其他一些边缘情况,您认为相同的两种类型被视为不同的,反之亦然:
无论如何,对于这种类型,我们可以生成一个生成错误的函数,除非两种类型以这种方式相等:
每个参数都有一个类型
请注意,此函数的参数不是可选的。我真的不知道你为什么想要它们是可选的,但是
这件事由你决定。 不管怎样,希望能有所帮助。祝你好运! |
![]() |
2
1
以下是迄今为止我发现的最强大的解决方案:
感谢@jcalz为我们指明了正确的方向! |
![]() |
3
-1
我们应该针对这个问题采取不同的方法。例如,如果我们知道我们正在与任何一个比较数字,我们可以使用typeof()。 例如,如果我们在比较接口,我们可以使用以下方法:
|
![]() |
Zoddo · 属性在明确定义时可能为“未定义” 4 月前 |
![]() |
Sanitysign · 为什么{}类型可分配给对象类型? 5 月前 |
![]() |
lokiuucx · JS对象属性返回未定义,尽管对象属性应该有值 5 月前 |
![]() |
njord · 基于函数的Typescript返回类型 5 月前 |