Typescript: De ce este acest lucru nu este o eroare de tip?

voturi
6

Încerc să înțeleg gradul de tip inferență la locul de muncă dactilografiat. În următorul exemplu de cod, de ce este fooimplementarea lui de baz.esplodevalabilitate? Înțelegerea mea este că o metodă de gol se potrivește 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);

Mulțumiri!

Întrebat 02/10/2012 la 09:41
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
11

Vă mulțumim pentru a lua o privire!

Asta este de fapt un bug. Atunci când o funcție este scris în funcție de context, ar trebui să-l tratăm ca și cum ar exista un tip de întoarcere adnotare care reprezintă tipul de retur destinat (pe secțiunea 4.9 din spec limbii), asa ca ai dreptate în faptul că ar trebui să existe o eroare.

Am deja un fix pentru acest lucru, dar se poate depune un bug pe site-ul CodePlex astfel încât echipa noastră să poată urmări? Pot împinge fix la filiala noastră a dezvolta această după-amiază.

Multumesc din nou!

Publicat 02/10/2012 la 18:26
sursa de către utilizator

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