Domanda

Sto cercando di capire il grado di inferenza del tipo sul lavoro a Destinatari.Nell'esempio seguente del codice, perché l'implementazione di foo è valida valida?La mia comprensione è che un metodo vuoto corrisponde a baz.esplode.

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);
.

Grazie!

È stato utile?

Soluzione

Grazie per aver dato un'occhiata!

è in realtà un bug.Quando una funzione è digitata contestualmente, dovremmo trattarla come usare un'annotazione del tipo di ritorno che rappresenta il tipo di ritorno previsto (per sezione 4.9 della lingua specifica), quindi è giusto in questo dovrebbe essere un errore. Ho già una soluzione per questo, ma puoi presentare un bug sul sito Codeplex in modo che il nostro team possa rintracciarlo?Posso spingere la correzione al nostro ramo di sviluppo questo pomeriggio.

Grazie ancora!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top