2016-04-16 3 views
0

Ich bin mir nicht sicher warum, aber ein Setzer, den ich geschrieben habe, wird nicht erkannt, wenn ich ihn nenne.Aufrufe an Typescript-Setzer geben keine Funktion zurück, obwohl zugehöriger Getter funktioniert

Hier ist der Fehler ausgelöst wird:

TypeError: Bridge.Config.middleware is not a function

Hier die Typoskript ist:

set middleware(val: any) { // should be function or function[] 
    this.props.exceptions.middleware = val; 
} 
get middleware() { 
    return this.props.exceptions.middleware; 
} 

Hier ist die erzeugte JS:

Object.defineProperty(ConfigService.prototype, "middleware", { 
    get: function() { 
     return this.props.exceptions.middleware; 
    }, 
    set: function (val) { 
     this.props.exceptions.middleware = val; 
    }, 
    enumerable: true, 
    configurable: true 
}); 

Prüfung:

// properly prints value 
console.log(Bridge.Config.middleware); 

// throws above-mentioned type error 
Bridge.Config.middleware(fn); 

Wie ich Ausführen (Kompilieren ES5): tsc -w --module 'commonjs' --target 'es5'

+1

Wenn es ein Setter ist, können Sie es wie folgt setzen soll Bridge.Config.middleware = fn; Sie können es einstellen, aber Sie können es nicht wie eine Funktion nennen – Ygalbel

+0

Ah, ich wusste nicht, dass es funktioniert hat. Neu bei Typoskript. Vielen Dank! –

Antwort

2

erstellen Sie einen Setter keine Funktion.

Code sollte sein:

Bridge.Config.middleware = fn; 
Verwandte Themen