새소식

반응형
REACT/ERROR LOG

No index signature with a parameter of type string was found on type

  • -
반응형
반응형

No index signature with a parameter of type string was found on type

타입스크립트에서 string key로 객체에 접근하면 위와 같은 에러가 날 수 있다.

const obj = {
  foo: "hello",
}

console.log(obj["foo"])

 

타입스크립트에서 객체에 접근할때 string literal 타입만 허용되는데 여기에 string 타입을 사용해서 생긴 문제이다.

 

하지만 switch case 보다는 내가 원하는 키에 따라 다른 값을 적은 코드로 얻고자할때 유용하게 쓰이므로 obj로 값을 얻는게 필요할때가 있다. 

 

빠르게 다음의 해결책을 참고하여 사용해보자.

Solution

객체를 함수로 반환하게하고 반환 타입에서 키값을 스트링 타입으로 지정해주고 사용하면된다.

 

way1)

  const obj:{[key:string]: any} = {
    foo: 'hello',
  };
  
  console.log(obj['foo']);

 

way2)

const obj = ():{[key:string]: any} => ({
  foo: 'hello',
});

console.log(obj()['foo']);
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.