인프런 커뮤니티 질문&답변

mives님의 프로필 이미지
mives

작성한 질문수

타입스크립트 입문 - 기초부터 실전까지

인터페이스 딕셔너리 패턴

자동 추론 관련 질문 드립니다.

작성

·

171

3

interface Test {
  [key: number]: string;
}

const val: Test = {
  1: 'one',
  2: 'two',
};

const valKeys = Object.keys(val); // valKeys의 type이 number[]가 아니라 string[]

Object.keys()의 return type은 string[]로 정해져있는 것 같아요...! 그래서 4분 쯤에 말씀하신 interface를 통해 type을 지정했을 때 forEach나 map의 parameter가 자동 추론이 되게 하려면 추가적인 조치가 필요할 것 같아요~

혹시 좋은 방법 있을까요? 저도 개발하면서 이 부분이 조금 불편했거든요ㅠㅠ

답변 1

0

안녕하세요 윤섭님, 좋은 질문 주셨네요. 보기 편하게 코드도 잘 첨부해 주셔서 감사합니다. 말씀하신 것처럼 Object.keys() API의 반환 타입은 string[] 입니다. API 목적 자체가 객체의 키만 문자열로 뽑아서 배열로 구성하는 거거든요. Object.keys()의 행동을 바꾸시는게 목적이 아니시라면 Object.keys()에 이어서 호출하는 API들은 모두 string으로 추론될겁니다 :)

mives님의 프로필 이미지
mives

작성한 질문수

질문하기