Dattiloscritto: Perché questo non è un errore di tipo?

voti
6

Sto cercando di capire il grado di inferenza di tipo al lavoro a macchina. Nel seguente esempio di codice, perché è foo's implementazione di baz.esplodevalide? La mia comprensione è che un metodo vuoto partite 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);

Grazie!

È pubblicato 02/10/2012 alle 09:41
fonte dall'utente
In altre lingue...                            


1 risposte

voti
11

grazie per dare un'occhiata!

Che in realtà è un bug. Quando una funzione viene contestualmente digitato, dovremmo trattarla come se esiste un tipo di ritorno di annotazione che rappresenta il tipo di ritorno previsto (per sezione 4.9 delle specifiche lingua), quindi hai ragione a che ci sia un errore.

Ho già una correzione per questo, ma si può aprire un bug sul sito CodePlex quindi il nostro team può seguirlo? Posso spingere la correzione alla nostra filiale di sviluppare questo pomeriggio.

Grazie ancora!

Risposto il 02/10/2012 a 18:26
fonte dall'utente

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