ExpertiDict

TypeScript · Avançado · Inglês · Técnico

variance annotations

/ˈvɛɹiəns ˌænəˈteɪʃənz/substantivo

Modificadores in e out em parâmetros de tipo genérico, como interface Fonte<out T>, que declaram explicitamente se o tipo é covariante, contravariante ou invariante.

Onde usar

Usados em bibliotecas para documentar a variância e acelerar a checagem de tipos grandes. Se a anotação contradiz o uso real, o compilador acusa erro na declaração.

Em código

interface Fonte<out T> {
  ler(): T;
}
interface Destino<in T> {
  escrever: (v: T) => void;
}
interface Canal<in out T> {
  atual: T;
}

Exemplos

I added out T to document that the interface is covariant.

Adicionei out T para documentar que a interface é covariante.

The compiler errors if the variance annotation contradicts the usage.

O compilador dá erro se a variance annotation contradiz o uso.

Cuidado

Eles são verificados: marcar out T num tipo que usa T como parâmetro de uma propriedade de função gera erro, porque a anotação não pode contradizer o corpo.

Sinônimos

anotações de variância

Veja também

Todos os termos de TypeScript