🚨Element implicitly has an 'any' type because expression of type 'string' can't be used to index type '...'.🚨

혜혜·2023λ…„ 7μ›” 31일
0

Error Note

λͺ©λ‘ 보기
5/19
post-custom-banner

❗ 문제 λ‚΄μš©

λ‚΄κ°€ λ§Œλ“  νƒ€μž…μ—λŠ” 인덱슀 μ‹œκ·Έλ‹ˆμ²˜κ°€ μ—†κΈ° λ•Œλ¬Έμ—, string νƒ€μž…μ˜ ν‘œν˜„μ‹μœΌλ‘œ 객체의 속성에 μ ‘κ·Όν•  수 μ—†λ‹€λŠ” 말이닀. μ‰½κ²Œ 말해, 인덱슀 μ‹œκ·Έλ‹ˆμ²˜λ₯Ό 지정해주면 ν•΄κ²°ν•  수 μžˆλ‹€. νƒ€μž…μŠ€ν¬λ¦½νŠΈμ—μ„œ 인덱슀 μ‹œκ·Έλ‹ˆμ²˜(Index Signature)λž€, 문자 κ·ΈλŒ€λ‘œ "이런 게 λ“€μ–΄μ˜¬ 수 μžˆλ‹€"λ₯Ό μ •μ˜ν•˜λŠ” μ„œλͺ…μœΌλ‘œ, μ†μ„±μ˜ λͺ¨μ–‘(νƒ€μž…)은 μ•„λŠ”λ° 이름은 μ•Œ 수 없을 λ•Œ μ‚¬μš©ν•˜λŠ” κ°œλ…μ„ λ§ν•œλ‹€.
ν•˜μ§€λ§Œ 인덱슀 μ‹œκ·Έλ‹ˆμ²˜λŠ” νƒ€μž…μ΄λ‚˜ μΈν„°νŽ˜μ΄μŠ€μ— 속성을 ν™•μ‹€νžˆ 정해두기보닀, "μ΄λŸ¬ν•œ μ‹œκ·Έλ‹ˆμ²˜λ₯Ό 가진 속성이 λ“€μ–΄μ˜¬ 수 μžˆλ‹€"라고 μ •μ˜ν•˜λŠ” 것이기 λ•Œλ¬Έμ—, λ™μ μœΌλ‘œ 속성을 λ°›μ•„μ•Ό ν•˜λŠ” κ²½μš°κ°€ μ•„λ‹ˆλ©΄ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 것을 ꢌμž₯ν•œλ‹€.

βš’ 문제 ν•΄κ²°

export interface SubmitForm {
	...
    [key: string]: string | number | null;
}

keyλŠ” string이고, valueλ‘œλŠ” string | number | null이 λ“€μ–΄μ˜¬ 수 μžˆλ‹€λŠ” 인덱슀 μ‹œκ·Έλ‹ˆμ²˜λ₯Ό μž‘μ„±ν•΄μ„œ ν•΄κ²°. μ—¬κΈ°μ„œ key 뢀뢄은 정해진 이름이 μ—†κ³ , indexλ‚˜ idx λ“±μœΌλ‘œ λ°”κΏ”μ„œ μž‘μ„±ν•΄λ„ μƒκ΄€μ—†μŒ.

πŸ™‡β€β™‚οΈ 참고자료

Using {[key:string]: string} and {[key:string]: any} in TS

profile
μ‰½κ²Œλ§Œμ‚΄μ•„κ°€λ©΄μž¬λ―Έμ—†μ–΄λΉ™κ³ 
post-custom-banner

1개의 λŒ“κΈ€

comment-user-thumbnail
2023λ…„ 7μ›” 31일

μœ μ΅ν•œ κΈ€μ΄μ—ˆμŠ΅λ‹ˆλ‹€.

λ‹΅κΈ€ 달기