1
Ich versuche, diesen Code zu verwenden:Singleton Dekorateur in Typoskript
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())
Und es funktioniert. Die Nachricht "Hallo!" wird in der Konsole angezeigt. Aber der Typskript-Compiler sagt, es gibt einen Fehler:
Was ist los?
Wahrscheinlich erwartet der Compiler nicht, dass ein Dekorator den Typ einer 'Klasse' in die eines Objekts ändert. Und er ist dort in guter Gesellschaft - das solltest du nicht tun. Um Singletons zu schreiben, benutze 'const SomeClass = {public method(): string { gib 'Hallo!' } }; 'und damit fertig sein! – Bergi