TypeScript 交叉类型(&)遇到两个Interface的key相同时遵循的条件

/**
 *  两个Interface 做交叉类型时
 *
 *  TODO 如果key对应的是变量
 *  1.一般类型的类型必须一致,否则合并后key对应的类型将会是never
 *
 *  TODO 如果key对应的是方法
 *  TODO 针对返回值
 *  1.不管两个方法有没有返回值,合成后的方法都能加返回值 any (排除有个方法返回never的情况,因为never没有实例,也不可能有这种返回值)
 *  2.如果两个方法都有返回值 且 返回值一样 那么合成后的方法 返回值只能取这个两个方法的返回值类型 和 any
 *  3.如果只有一个方法都有返回值 合并后方法的返回值 只能取这个有返回值方法的返回值类型 和 any
 *  4.两个方法都没有返回值 合并后的方法可以添加任意返回值类型
 *  TODO 针对形参
 *  1.合并后的方法,形参数量 和 之前两个方法中形参最少那个相同
 *  2.合并后的方法,形参类型分别 和 之前两个方法中形参类型对应 相当于 fun1|fun2 联合类型取一个
 *  3.合并后的方法在调用时,形参传入数量和类型必须和前两个方法一样传入 相当于 fun1|fun2 联合类型取一个
 *
 */

你可能感兴趣的:(TypeScript 交叉类型(&)遇到两个Interface的key相同时遵循的条件)