Typescript:联合类型作为接口

KWe*_*iss 0 types typescript union-types

我有一种情况,我需要一个函数来接受各种不同的类型。它们将由函数内的类型保护分隔开。所以我使用这样的联合类型:

function(param: TypeA | TypeB): void {
    let callback: (param: TypeA | TypeB): void = () => {};

    if (isTypeA(param)) {
        callback = doSomethingWithTypeA;
    } else if (isTypeB(param)) {
        callback = doSomethingWithTypeB;
    }

    return callback(param);
}
Run Code Online (Sandbox Code Playgroud)

其中该函数doSomethingWithTypeA仅接受 typeA 等。

正如您所看到的,总是写出(TypeA | TypeB)是非常冗长的,特别是因为它在我的实际代码中超过两种类型。

有什么方法可以创建这样的界面(TypeA | TypeB)吗?
或者还有其他方法可以实现这一目标吗?

Sar*_*ana 6

使用类型别名

type YourType = TypeA | TypeB // | ... and so on
Run Code Online (Sandbox Code Playgroud)