작성
·
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으로 추론될겁니다 :)