TypeScript 카펫 기법에서 색인 서명 오류
3159 단어 TypeScripttech
개시하다
대상 속성에 접근할 때 담요 표시를 사용합니다
동적 키를 사용하여 액세스할 수 있습니다.
API에서 응답하여 속성에 액세스하려는 경우에만
No index signature
오류가 생겨 푹 빠졌으니 대응 방법을 정리해보자.색인 서명
이것은 대상이 어떤 키를 가져올지 표시하는 유형의 변형이다.
{[key: T]: U}
로 지정합니다.이 객체는 유형 T의 모든 키에 유형 U의 값이 있어야 함을 나타냅니다.
또한 유형 T는number 또는string형을 사용할 수 있습니다.
하고 싶은 일
구조를 모르는 대상에게는 임의의 키로 속성에 접근할 수 있는 것이 이번에 하고 싶은 일이다.
임의의 대상과 키를 사용하여 그림에 접근하려면 컴파일 오류가 발생합니다.
const returnPersonData = (obj: object, key: string): any => {
console.log(obj[key]);
};
型 'string' の式を使用して型 '{}' にインデックスを付けることはできないため、要素は暗黙的に 'any' 型になります。
型 'string' のパラメーターを持つインデックス シグネチャが型 '{}' に見つかりませんでした。
obj
의 TypeScript 존재 여부key
에 대해 잘 몰라서 오류가 발생했습니다.해본 일
obj의 유형이 지정되었습니다
{[key: T]: U}
.const returnPersonData = (obj: {[anyKey: string]: any}, key: string): any => {
이번 대상의 구조는 전혀 예측할 수 없기 때문에ny를 사용했다.형 안전 면에서 볼 때any를 쓰고 싶지 않은데 찾을 수 없어서 이 방법을 썼어요.
(any 대신
string | number | boolean | object
도 사용할 수 있지만 이 정도로 줄일 수 없고 지루해서 any를 선택했습니다.)총결산
다른 방법이 있는 것 같아...
다른 좋은 방법이 있는지 알아볼게요.
참고 자료
Reference
이 문제에 관하여(TypeScript 카펫 기법에서 색인 서명 오류), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/yyya/articles/a60e54f0582b41텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)