Typoskript: Warum ist das nicht eine Art Fehler entdeckt?

stimmen
6

Ich versuche , den Grad der Typinferenz bei der Arbeit in Typoskript zu verstehen. Im folgenden Codebeispiel, warum ist foo‚s Umsetzung baz.esplodegültig? Mein Verständnis ist , dass eine leere Methode übereinstimmt void.

interface bar {
    horace: number;
}

interface baz {
    esplode: (string, number) => bool;
}

interface bazzer extends bar, baz { }

var foo: bazzer = {
    horace: 12,
    esplode: function () { }
}

var x = foo.esplode('crackers', 2);

Vielen Dank!

Veröffentlicht am 02/10/2012 um 09:41
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
11

Dank für einen Blick!

Das ist eigentlich ein Fehler. Wenn eine Funktion kontextuell eingegeben hat, sollten wir sie behandeln, als ob ein Rückgabetyp Anmerkung vorhanden, dass der vorgesehenen Rückgabetyp darstellt (pro Abschnitt 4.9 der Sprache spec), so haben Sie Recht, dass es sollte ein Fehler sein.

Ich habe bereits eine Lösung für dieses, aber können Sie einen Fehler auf der CodePlex-Website einreichen, damit unser Team kann es verfolgen? Ich kann an diesem Nachmittag um das Update zu unserer Entwicklung Zweig schieben.

Danke noch einmal!

Beantwortet am 02/10/2012 um 18:26
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more