Effective Typescript 1장, 2장을 읽고 선정한 인터뷰 질문과 스터디 내용입니다.
내용요약
인터뷰질문
Q. 프로젝트에 타입스크립트를 도입한 이유?
A. 타입스크립트를 도입한 이유는 개발 생산성 향상입니다. 협업 시 문맥 파악이 용이하고 자동완성을 통해 효율성을 높일 수 있었습니다. 또한 컴파일 타임에 타입을 체크하는 정적 타이핑을 지원하기 때문에 에러를 사전에 방지할 수 있었습니다.
Q. type을 선언하게 되면 코드가 늘어나는데, 이 부분에 대한 성능 처리?
A. 타입스크립트는 자바스크립트 런타임 성능에 영향을 주지 않습니다. JS로 컴파일되는 과정에서 타입이 제거되기 때문입니다.
Q. any타입을 지양해야 하는 이유
A. 프로젝트 중 느꼈던 any타입의 가장 큰 단점은 타 개발자의 코드를 볼 때 설계의도가 명확히 보이지 않는다는 점이었습니다. 또한 타입 안전성이 사라지기 때문에 타입스크립트를 도입한 이유가 사라집니다.
Q. type과 interface를 어떨 때 쓰는지
A. 인터페이스는 타입과 다르게 속성 확장이 가능하므로 백엔드에서 변경 가능한 API에 대한 부분은 인터페이스로, 변경사항이 없는 내부로직에서는 타입으로 구현합니다.
또한 타입은 인터페이스와 다르게 유니온 사용이 가능하므로 해당 부분이 필요할 때는 타입으로 구현합니다.
스터디 인사이트
Q. 타입스크립트에서 튜플과 배열의 차이
- 튜플이란?
- 크기와 타입이 고정된 배열
- 서로 다른 타입을 함께 가질 수 있는 배열
- 값 자체를 고정시킬 수도 있다. (강한 타입)
Q. declare function 이란?
외부 라이브러리나 모듈의 타입정보를 정의할 때 사용되는 키워드이다.
'TIL > TypeScript' 카테고리의 다른 글
[240131] 제네릭, 유틸리티 타입(제네릭 타입) (0) | 2024.01.31 |
---|---|
[240125] 이펙티브 타입스크립트 4주차 + 회고 (1) | 2024.01.25 |
[240118] 이펙티브 타입스크립트 3주차 (0) | 2024.01.18 |
[240111] 이펙티브 타입스크립트 2주차 (1) | 2024.01.11 |