TypeScript · Avançado · Inglês · Técnico
InstanceType
Utility type que extrai o tipo da instância criada por um construtor ou classe, ou seja, o que new produz. Útil quando só se tem a referência ao construtor.
Onde usar
Aparece em fábricas e injeção de dependência genéricas que recebem uma classe como argumento. Em código comum o próprio nome da classe já serve como tipo da instância.
Em código
class Gato { miar() {} }
type G = InstanceType<typeof Gato>; // Gato
function criar<C extends new () => object>(
c: C
): InstanceType<C> {
return new c() as InstanceType<C>;
}Exemplos
InstanceType gives me what the constructor builds.
InstanceType me dá o que o construtor cria.
Use InstanceType of the generic constructor type.
Use InstanceType do tipo genérico do construtor.
Cuidado
InstanceType<typeof Classe> é redundante para classes comuns, e só vale a pena quando o construtor chega como tipo genérico.