에러 내용
Element implicitly has an 'any' type because index expression is not of type 'number'.
코드
•
Language 라는 이름의 enum이 존재
•
languageList의 key 중 string인 것을 필터링하여 배열로 만듬
•
배열 내 key로 Language에서 값을 얻기 위해 접근 시 오류 발생
export declare enum Language {
KO = 0,
EN = 1,
JP = 2,
CN = 3,
TH = 4
}
const languageList = Object.keys(Language).filter((key) => isNaN(Number(key)));
{languageList.map((language) => {
return (
<Option key={language} value={Language[language]}>
{language}
</Option>
);
})}
TypeScript
복사
해결책
•
language가 Language의 key로 구성되어 있다는 것을 타입 단언으로 처리하여 충분한 타입 정보 제공
<Option key={language} value={Language[language as keyof typeof Language]}>
TypeScript
복사
깨달은 점
•
enum 값에 접근할 때는 타입스크립트에서 유효한 key로만 접근이 가능하다
•
추후, 더 나이스하게 해결할 수 있는 방법이 있을지 알아보고 싶다.