TypeScript · Avançado · Inglês · Técnico
module augmentation
Técnica que reabre um módulo importado com declare module 'nome' para acrescentar ou ampliar tipos dele, aproveitando o merging de declarações. Exige que o arquivo seja um módulo.
Onde usar
Muito usada para acrescentar opções a plugins e campos a tipos de bibliotecas sem editar node_modules. Sem ela, você recorreria a casts em todo lugar.
Em código
// tema.ts
export interface Tema { cor: string }
// extra.ts
import './tema';
declare module './tema' {
interface Tema { fonte?: string }
}Exemplos
Use module augmentation to add the new option to the plugin types.
Use module augmentation para adicionar a nova opção aos tipos do plugin.
It only works because the file has an import.
Só funciona porque o arquivo tem um import.
Cuidado
O arquivo precisa ter ao menos um import ou export; sem isso, o declare module vira uma declaração ambient nova e não um aumento do módulo existente.
Sinônimos
aumento de módulo