InstanceType<Type>

Récupère le type de l’objet créé par le constructeur d’une classe.

Sur cette page

Exemple

#
TypeScript
class Badge {
  constructor(public name: string) {}
}

class Certificate {
  constructor(public course: string) {}
}

function create<C extends new (arg: string) => object>(Cls: C, arg: string): InstanceType<C> {
  return new Cls(arg) as InstanceType<C>
}

const badge = create(Badge, 'Série de 7 jours')
const cert = create(Certificate, 'HTML et CSS')
console.log(badge.name, '|', cert.course)
Résultat
Série de 7 jours | HTML et CSS

Définition et utilisation

#

InstanceType<Type> prend un type de constructeur et renvoie le type de l’objet qu’il crée. Pour typeof Player, le résultat est le type Player.

Dans le code courant, une classe est déjà le type de ses propres instances, donc InstanceType est surtout utile dans du code générique : fabriques, registres de classes et fonctions qui prennent une classe en argument.

Pour les classes abstraites, il faut utiliser le type abstract new (...args: any) => any dans la contrainte du paramètre de type.

Syntaxe

#
Syntaxe
type Instance = InstanceType<typeof Class>

Paramètres de type

#
  • Type

    type de constructeur

    Le type d’une classe ou d’une fonction constructrice.

Bonnes pratiques

#
  • Dans du code habituel, le nom de la classe suffit comme type. Réservez InstanceType au code générique.
  • Pour le type des paramètres du constructeur, utilisez ConstructorParameters<typeof Class>.

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.