TS7015
Tablica indeksowana wartością inną niż liczba
Element implicitly has an 'any' type because index expression is not of type 'number'.Własne słowa kompilatora. Nietłumaczone — to ten ciąg, który wkleiłeś w wyszukiwarkę.
Tablice opisują pozycje liczbowe; klucz tekstowy taki jak `first` nie jest jedną z nich.
Odtworzenie
const values = [1, 2] values['first']
Build potwierdza, że to emituje dokładnie ten kod.
Dlaczego kompilator tak mówi
Obiekty JavaScript mogą mieć dowolne właściwości, ale typ tablicy obiecuje tylko elementy liczbowe i standardowe składowe. TypeScript nie wymyśli sygnatury indeksu tekstowego i nie zamieni po cichu wyniku w `any`.
Naprawy
- 01
const values = [1, 2] const first = values[0]
Użyj pozycji liczbowej, gdy kolekcja jest uporządkowana.
- 02
const values: Record<string, number> = { first: 1, second: 2, } const first = values['first']
Użyj obiektu z kluczami lub `Record`, gdy wartości identyfikują nazwy, a nie pozycje.
Wniosek
Wybierz strukturę pasującą do wyszukiwania: tablice dla pozycji, rekordy dla nazw.
