Built-in Utility Types
Cuando un tipo en particular es utilizado en múltiples
bases de código, se agrega a TypeScript y pasa a estar
disponible para cualquier usuario, lo que significa que
puede confiar constantemente en su disponibilidad.
Partial
// Crea un tipo que usa la lista de propiedades del
parametro KeysFrom y les asigna el valor del tipo.
Lista con llaves para KeysFrom:
interface Sticker {
id: number;
name: string;
createdAt: string;
updatedAt: string;
submitter: undefined | string;
}
type StickerUpdateParam = Partial
// La forma de los datos requerida para cada una de las
llaves anteriores:
type NavigationPages = "home" | "stickers" | "about" | "contact";
// Crea un tipo seleccionando el conjunto de propiedades de
Keys definidas en Type. Esencialmente, una lista de
permisos para extraer información de tipo de un tipo.
interface PageInfo {
title: string;
url: string;
axTitle?: string;
}
const navigationInfo: Record
// Crea un tipo eliminando el conjunto de propiedades
definidas en Keys del objeto Type. Esencialmente, una
lista de prohibición para extraer información de tipo de
un tipo.
type StickerSortPreview = Pick
// Crea un tipo conformado por las propiedades definidas en
Type que no se superponen con las definidas en
RemoveUnion.
type StickerTimeMetadata = Omit
// Crea un tipo conformado por las propiedades definidas en
Type que se superponen con las definidas en MatchUnion.
type HomeNavigationPages = Exclude
// Crea un tipo conformado por la exclusión del valor null y
undefined de un conjunto de propiedades. Muy útil cuando
tienes una condición de validación.
type DynamicPages = Extract
// Crea un tipo que es una instancia de una clase, o un
objeto con un constructor.
type StickerLookupResult = Sticker | undefined | null;
type ValidatedResult = NonNullable
// Crea un tipo que convierte todas las propiedades
opcionales a requeridas.
class StickerCollection {
stickers: Sticker[];
}
type CollectionItem = InstanceType
// A diferencia de otros tipos, ThisType no retorna un nuevo
tipo, en vez de ello, manipula la definición del tipo en
una función. Solo se puede usar ThisType cuando se tiene
activada la opción noImplicitThis en tu configuración
TSConfig.
https://www.typescriptlang.org/docs/handbook/utility-types.html
type AccessiblePageInfo = Required