inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

인터페이스 딕셔너리 패턴

interface type정의시 Object.values의 타입 지정을 어떻게 해주어야 할지 궁금합니다.

705

작성자 없음

작성한 질문수 0

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);
  }
);

es6 javascript typescript

답변 1

0

캡틴판교

안녕하세요, 원하시는게 keyof 일까요? 객체의 key와 value의 타입을 구하는 방법은 아래 링크 참고해 보시면 될 것 같아요 :)

https://stackoverflow.com/questions/53662208/types-from-both-keys-and-values-of-object-in-typescript

TSLint

0

77

1

vscode eslint server 오류

0

97

1

안녕하세요. 기본타입- 튜플, 객체, 진위값 부분의 영상의 화면이 나오질 않습니다.

0

86

1

live server 설치 오류

1

400

2

강의 교안 pdf 는 따로 제공하지않나요?

0

294

2

npm i 설치 이유 문의

1

431

3

index.ts Delete `␍`eslintprettier/prettier 오류(빨간줄) 해결

2

303

3

vue 에서 jquery 사용 문제

1

710

2

TSLint 확장 프로그램은 현재 지원하지 않는다고 합니다.

1

510

2

강의 내용처럼 노란 밑줄이 작동하지 않아서 유사 질문들을 실행해보았는데요

1

553

1

section 3-1 JSdoc 타입이 추론되지 않아서 다음과 같이 수정했는데 이거 맞나요?

1

465

2

함수에 리턴 안됐다고 노란밑줄이 쳐져야하는데 없습니다

2

463

1

파일이 다른데 식별자가 중복되었다고 뜹니다.

1

461

2

빨간줄 에러 질문드립니다

1

499

2

마우스 갖다대면 리턴값 설명 나오는 거 질문드려요

1

366

2

js에서 @ts-check 적어도 체크하지 못하는 문제입니다

2

406

2

index.html에서 타입스크립트 콘솔 찍는 법 질문드립니다

1

579

2

섹션 1-3 추론 질문드립니다

1

362

2

왜 api쪽에는 왜 에러가 안나는지 궁금합니다.

1

334

2

const item1을 선언했을 때 타입을 선언해줘도 괜찮을까요?

1

404

1

전화번호부 타입선언

1

275

2

타입을 전역으로 분리

1

604

2

객체 선언 시 구분자는 쉼표, 세미콜론 모두 사용가능한건가요?

1

462

1

Git 관련 질문이 있습니다

1

674

2