小编Ber*_*rto的帖子

为什么重新排序类型时交集会发生变化?

如果这是一个非常基本的问题,我很抱歉。我正在自学打字稿,根据我的教程,交叉点中类型的顺序应该无关紧要,例如A & B并且B & A应该是相同的类型。

但是我偶然发现了这种边缘情况,其中类型的顺序确实很重要,尽管我不明白为什么。

abstract class Test
{
    constructor(a: string, b: boolean)
    { }
}

type A = typeof Test;
type B = new (...args: unknown[]) => unknown;

type AB = ConstructorParameters<A & B>; // unknown[]
type BA = ConstructorParameters<B & A>; // [a: string, b: boolean]
Run Code Online (Sandbox Code Playgroud)

在这种特殊情况下,顺序如何影响结果类型?

还有什么我应该注意的边缘情况吗?

谢谢你。

typescript

8
推荐指数
1
解决办法
82
查看次数

标签 统计

typescript ×1