TypeScript · Avançado · Inglês · Técnico
mapped type modifiers
Prefixos + e - aplicados a readonly e ? dentro de um mapped type, para adicionar ou remover esses modificadores. -readonly e -? desfazem o somente leitura e a opcionalidade.
Onde usar
É assim que o Required é implementado e como se cria um Mutable: { -readonly [K in keyof T]: T[K] }. Útil para obter uma versão editável de um tipo congelado.
Em código
type Mutavel<T> = {
-readonly [K in keyof T]: T[K];
};
type Cheio<T> = {
[K in keyof T]-?: T[K];
};
type A = Mutavel<{ readonly x: number }>;
// A = { x: number }Exemplos
Use -readonly to get a mutable copy of the type.
Use -readonly para obter uma cópia mutável do tipo.
The minus question mark makes every field required.
O menos ponto de interrogação torna todos os campos obrigatórios.
Cuidado
Sem prefixo, o modificador é adicionado; para removê-lo o - é obrigatório, e escrever readonly sozinho torna as propriedades somente leitura.