TypeScript · Senior · Pytanie 72 z 75
Dlaczego jawne ograniczenia generyków są lepsze od rzutowania wewnątrz funkcji generycznej?
function byId<T extends { id: string }>(items: T[], id: string): T | undefined {
return items.find((i) => i.id === id);
}- ✓Poprawna odpowiedź: Ograniczenie pozwala kompilatorowi sprawdzić dostęp do właściwości i zachowuje precyzyjne
Tdla wywołujących - 2Rzutowanie jest szybsze
- 3Ograniczenia to tylko dokumentacja
Wyjaśnienie
Rzutowanie ((i as any).id) ukrywa błędy; ograniczenie dokumentuje i sprawdza wymaganie.