Effective Typescript 3장, 4장을 읽고 선정한 인터뷰 질문과 스터디 내용입니다.
내용요약
인터뷰질문
Q. 어떨 때 타입을 명시해야 하는가?
A. 함수/메서드의 시그니처를 작성할 때, 객체 리터럴을 정의할 때, 함수의 반환값
Q. 제네릭이란?
A. 타입을 마치 함수의 파라미터처럼 사용하는 것으로, 코드를 작성할 때가 아니라 코드가 수행될 때(런타임) 타입을 명시합니다. 여러 가지 타입에서 동작하는 컴포넌트를 생성하는 데에 유리합니다.
Q. any와 unknown의 차이는?
A. 둘 모두 모든 타입을 허용한다는 공통점이 있지만, unknown은 any와 다르게 다른 타입에 할당이 불가능하고, 타입 좁히기 없이 각 타입만의 연산들을 활용할 수 없습니다. 즉 unknown은 "아직 타입을 모르겠으니 나중에 돌아와서 확인하겠다" 라는 뜻으로 사용할 수 있기에, any보다는 unknown을 사용하는 것이 바람직합니다.
스터디 인사이트
Q. 아이템 23의 예제 결과가 다르다?
declare let hasDates: boolean;
const nameTitle = { name: 'Khufu', title: 'Pharaoh' };
const pharaoh = {
...nameTitle,
...(hasDates ? { start: -2589, end: -2566 } : null),
};
위 예제에서 pharaoh를 찍어 보면 아래와 같이 나온다.
즉 원하는 모양으로 타입이 잘 추론되므로 헬퍼 함수 작성은 필요없어 보인다.
'TIL > TypeScript' 카테고리의 다른 글
[240131] 제네릭, 유틸리티 타입(제네릭 타입) (0) | 2024.01.31 |
---|---|
[240125] 이펙티브 타입스크립트 4주차 + 회고 (1) | 2024.01.25 |
[240118] 이펙티브 타입스크립트 3주차 (0) | 2024.01.18 |
[240104] 이펙티브 타입스크립트 1주차 (0) | 2024.01.05 |