2012-10-31 3 views

Odpowiedz

3

To jest interesujące. Zespół TypeScript to całkiem sprytni faceci i postanowili zrobić to celowo.

Chodzi o to, że jeśli twoja funkcja może działać poprawnie bez przekazania argumentu, może bezpiecznie zignorować argument i spełnić wymagania interfejsu. Oznacza to, że możesz zastąpić implementację bez konieczności aktualizowania całego kodu wywołującego.

Interfejs zapewnia, że ​​argument zostanie przekazany we wszystkich przypadkach, w których zużywasz interfejs - tak, że dostajesz sprawdzanie typu dla dzwoniących i faktycznie nie ma znaczenia, że ​​twoja konkretna klasa nie potrzebuje żadnych parametrów.

Interface Function Parameter Not Enforced

+0

myślałem, że to zbyt oczywiste, aby być błąd .. czeka, jeśli ktoś ma inną odpowiedź wtedy chory zaznaczyć odpowiedź .. Dzięki –

+0

aktualizowany w oparciu o informacje zwrotne od zespołu maszynopis. – Fenton

+0

Dzięki, ale dla mnie wolałbym mieć sprawdzanie parametrów w celu zapewnienia prawidłowej implementacji, i można argumentować, mówiąc, że mam funkcję a (arg1) nie w interfejsie .. w klasie pozwala powiedzieć .. to nie będzie możliwe do wywołania bez arg1, chyba że arg1 nie jest wymagany przy użyciu "?" .. –

Powiązane problemy