1
J'essaie d'utiliser ce code:décorateur Singleton dactylographiée
function singleton<T extends { new() }>(constructor: T): T {
return new constructor()
}
@singleton
export default class SomeClass {
constructor() {}
public method(): string {
return 'Hello!'
}
}
console.log(SomeClass.method())
Et cela fonctionne. Le message "Bonjour!" est affiché dans la console. Mais le compilateur dactylographié dit qu'il y a une erreur:
Qu'est-ce qui ne va pas?
Probablement le compilateur ne s'attend pas à ce qu'un décorateur change le type d'une 'classe' à celle d'un objet. Et il est en bonne compagnie là-bas - tu ne devrais pas faire ça. Pour écrire des singletons, utilisez 'const SomeClass = {public method(): string { return 'Bonjour!' } }; 'et d'en finir! – Bergi