ExpertiDict

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

InstanceType

/ˈɪnstəns taɪp/substantivo

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.

Veja também

Todos os termos de TypeScript