相关疑难解决方法(0)

将联合类型转换为交集类型

有没有办法将联合类型转换为交集类型:

type FunctionUnion = () => void | (p: string) => void
type FunctionIntersection = () => void & (p: string) => void
Run Code Online (Sandbox Code Playgroud)

我想应用转换FunctionUnion来获取FunctionIntersection

typescript

55
推荐指数
4
解决办法
4645
查看次数

打字稿:检查类型是否为联合

是否可以检查给定类型是否为联合?

type IsUnion<T> = ???
Run Code Online (Sandbox Code Playgroud)

为什么我需要这个:在我的代码中,我有唯一的情况,当一些收到的类型可以是一个联合.我用分配条件类型处理它.但是,对于查看此代码的人来说,首先使用DCT的原因并不明显.所以我希望它明确如下:IsUnion<T> extends true ? T extends Foo ...

我做了几次尝试UnionToIntersection,没有结果.我也想出了这个:

type IsUnion<T, U extends T = T> =
    T extends any ?
    (U extends T ? false : true)
    : never
Run Code Online (Sandbox Code Playgroud)

它给false了非工会,但由于某种原因它给boolean工会......我不知道为什么.我也infer从T 尝试过U,没有成功.

PS我的用例可能看起来像某人不完美/正确/好,但无论如何标题中的问题已经出现,我想知道它是否可能(我觉得它是,但我很难自己搞清楚).

typescript

12
推荐指数
1
解决办法
432
查看次数

如何将联合类型转换为元组类型

例如我有类型

type abc = 'a' | 'b' | 'c';
Run Code Online (Sandbox Code Playgroud)

如何使元组类型在编译时包含联合的所有元素?

type t = ['a','b', 'c'];
Run Code Online (Sandbox Code Playgroud)

typescript

4
推荐指数
1
解决办法
165
查看次数

标签 统计

typescript ×3