인프런 커뮤니티 질문&답변
작성자 없음
작성자 정보가 삭제된 글입니다.
interface type정의시 Object.values의 타입 지정을 어떻게 해주어야 할지 궁금합니다.
작성
·
696
1
현재 강의 내용 처럼 딕셔너리 패턴으로 interface를 작성하는게 아닌 아래 코드처럼 하나의 key에 대한 type을 지정해주고 Object.values로 생성한 array의 array method를 사용해 value 타입을 보면 typescript가 value들의 타입을 인지하지 못해 any 타입으로 되는 것 같습니다.
위 상황에서 value의 type을 설정해 주려면 아래 코드처럼 value에 직접 타입을 넣어주어야 하는 것일까요?
아니면 다른 방법이 있는건지 궁금합니다.
interface StringRegexDictionary {
regExp: RegExp;
str: string;
obj: {
one: number;
two: string;
};
}
const obj: StringRegexDictionary = {
regExp: /abc/,
str: 'string value',
obj: {
one: 1,
two: '둘',
},
};
Object.keys(obj).forEach(key => {
console.log(key);
});
Object.values(obj).forEach(
(
value: (RegExp | string) & {
one: number;
two: string;
}
) => {
console.log(value);
}
);답변 1
0
장기효(캡틴판교)
지식공유자
안녕하세요, 원하시는게 keyof 일까요? 객체의 key와 value의 타입을 구하는 방법은 아래 링크 참고해 보시면 될 것 같아요 :)
https://stackoverflow.com/questions/53662208/types-from-both-keys-and-values-of-object-in-typescript




