Ich habe dieses Setup:Aufbau einer Klasse Registrierung: Kann nicht ‚neu‘ verwenden, um mit einem Ausdruck, dessen Typ fehlt an oder konstruieren Unterschrift
//./things/Base.ts
export default class Base{
constructor(){
console.log("HI I AM A BASE THING");
}
}
//things.ts
import Base = require('./things/Base');
export = {
defaultThing: Base
};
//entry.ts
import Things = require('./things');
new Things.defaultThing();
Was ich versuche zu tun, ein Wörterbuch mit den Tasten bauen Ich möchte für Klassen eines bestimmten Typs, lassen Sie mich die zugrunde liegende Implementierung ändern, ohne den verbrauchenden Code zu berühren. Dies schlägt mit der folgenden Meldung fehl
λ tsc entry.ts
entry.ts(3,1): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.
Warum ist das und was ist das richtige Idiom?
Schön! Weißt du, warum das passiert? Ich hatte den Eindruck, dass das Idiom genauso funktioniert wie Ihre vorgeschlagene Lösung –
Ich denke, ich fand die Erklärung - fügte es der Antwort hinzu – artem