Having duplicate types in an intersection or union type definition impacts readability. It is often the result of a mistake while declaring the types.
type CustomType = 1 | 2 | 1
let foo: number | string | number
let bar: string & number & string
function foobar(quz: string | number | number): boolean | boolean {
// function body
}
type CustomType = 1 | 2
let foo: number | string
let bar: string & number
function foobar(quz: string | number): boolean {
// function body
}