TypeScript · Avançado · Inglês · Técnico
variance annotations
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