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 联合类型取一个
 *
 */
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容