Lorsque l'on sait, par conception, que notre classe n'est pas faite pour être héritée par une classe fille, c'est une bonne pratique de la rendre finale; cela renforce l'idée d'une meilleure conception logicielle.
Dans plusieurs langages, il est possible de créer une classe mère qui ne peut pas être étendue par une classe fille en utilisant un simple mot-clé final ou sealed.
Malheureusement, il n'est pas possible - au moment de la rédaction de cet article - de créer une classe finale avec JavaScript/TypeScript.
Mais il est possible de « tromper » le système en exploitant les annotations et obtenir un comportement similaire de cette manière.
Comme nous l'avons dit plus haut, ce code est conçu pour être utilisé comme avec un décorateur, qui est une proposition de niveau 2 pour JavaScript.
Dans un projet TypeScript, on peut d'ores-et-déjà déjà utiliser cette fonctionnalité en l'activant dans son tsconfig.json.
Pour en savoir plus sur les décorateurs on peut se rendre dans la documentation de Typescript.