有没有办法将联合类型转换为交集类型:
type FunctionUnion = () => void | (p: string) => void
type FunctionIntersection = () => void & (p: string) => void
Run Code Online (Sandbox Code Playgroud)
我想应用转换FunctionUnion
来获取FunctionIntersection
是否可以合并两个通用对象类型的道具?我有一个类似这样的功能:
function foo<A extends object, B extends object>(a: A, b: B) {
return Object.assign({}, a, b);
}
Run Code Online (Sandbox Code Playgroud)
我希望该类型是A中B中不存在的所有属性,以及B中的所有属性.
merge({a: 42}, {b: "foo", a: "bar"});
Run Code Online (Sandbox Code Playgroud)
给出一个相当奇怪的类型{a: number} & {b: string, a: string}
,a
虽然是一个字符串.实际的返回给出了正确的类型,但我无法想象我将如何明确地写它.