实现TypeScript中的互斥类型
前言 有这样一个对象,它有两个属性:name与title,在赋值的时候这两个属性只有一个能出现,例如:name出现的时候title就不能出现,title出现的时候name就不能出现。 此时,你会怎么用TypeScript来定义这个类型?本文将带大家实现一个互斥类型来解决这个问题,欢迎各位感兴趣的开发者阅读本文。 前置知识 在实现之前,我们需要先来了解几个基础的知识。 对象中多属性同类型的定义 有一个对象它包含5个可选属性a、b、c、d、e,他们的类型都为string,大多数人的定义方式应该如下所示: type obj = { a?:string; b?:string; c?:string; d?:string; e?:string; } 那么,有没有更好的方式呢😼,答案是有的,请看我的表演: type obj = { [P in "a" | "b" | "c" | "d" | "e"]?: string }; never类型 在TypeScript中它有一个特殊的类型never,它是所有类型的子类型,无法再进行细分,也就意味着除了其本身没有类型可以再分配给它。 我们举个例子来解释下上...








