Estaba estudiando Typescript, pero tengo cierta confusión.
type t = number & string // never type t1 = number & boolean // never type t2 = number & string[] // number & string[]¿Por qué se ve diferente?
En Typescipt, la intersección & de dos tipos primitivos siempre es nunca porque una variable no puede ser tanto una cadena como un número, pero la intersección de dos matrices/objetos se llama branded object y una matriz/objeto con una primitiva es un tipo válido y es llamado como primitivo de branded primitve , entonces, ¿dónde usamos primitivo de marca? , consulte el siguiente ejemplo
type SomeUrl = string & {'this is a url': {}}; let x = <SomeUrl>'';