본문 바로가기
TIL/취준

TypeScript 면접 예상 질문

by saramnim 2023. 8. 21.
728x90
전에 적어놨던 것들

Type과 Interface의 차이

  • Type
    타입을 정의하기 위한 키워드
    기존 타입을 확장하거나 별칭을 만들 수 있다.
  • Interface
    객체의 구조를 정의하기 위한 키워드
    클래스나 객체의 형태를 지정하고 메소드나 속성을 정의할 수 있다.

  •  

타입 추론

타입스크립트에서 변수나 함수의 타입을 명시적으로 지정하지 않아도, 초기 값이나 사용 방법을 분석하여 타입을 추론

 

타입스크립트를 사용하는 이유

  • 정적 타입 검사
    런타임 에러를 줄이고 코드 품질을 향상
  • 코드 가이드 및 자동 완성
    IDE에서 타입 정보를 활용하여 더 빠르게 코딩
  • 유지보수 및 리팩토링 용이성
    타입 정보가 있는 경우 코드 변경 시 어떤 부분이 영향을 받는지 쉽게 파악

제네릭

타입이 여러 종류의 값을 가질 수 있도록 일반화된 타입을 생성하는 방법

함수나 클래스에서 사용하여 재사용성을 높이고 타입 안정성 유지

Public, Private, Protected

  • Public
    모든 곳에서 접근 가능한 멤버
  • Private
    멤버가 선언된 클래스 내부에서만 접근 가능한 멤버
  • Protected
    멤버가 선언된 클래스 및 그 자식 클래스에서 접근 가능한 멤버


Static

클래스 레벨에서 사용되며, 클래스 자체에 속하고 인스턴스에 속하지 않는 멤버를 정의
클래스에서 직접 접근 가능

Enums

열거형은 관련된 상수 값들을 그룹화하여 표현할 수 있는 기능
코드 가독성을 높이고 유지보수를 용이하게 할 수 있다.

Union Types

여러 타입 중 하나가 될 수 있는 타입을 표현할 때 사용
변수나 매개변수가 여러 타입의 값을 받을 수 있을 때 유용


최근에 다시 정리한 것들

TypeScript는 자바스크립트의 상위 집합으로, 정적 타입을 지원하여 개발자가 더욱 안정적이고 유지보수가 쉬운 코드를 작성할 수 있도록 도와주는 언어다.

TypeScript란?

TypeScript는 Microsoft에서 개발한 오픈소스 프로그래밍 언어로, 자바스크립트의 확장된 버전입니다. 정적 타입을 지원하여 컴파일 시간에 오류를 검출할 수 있게 해줍니다.

TypeScript의 주요 특징

  • 정적 타이핑
  • 인터페이스와 클래스
  • 제네릭 타입
  • 데코레이터
  • 네임스페이스와 모듈
  • 튜플 타입 등

  •  

TypeScript와 JavaScript의 가장 큰 차이점은 무엇인가요?

가장 큰 차이점은 TypeScript의 정적 타입 지원이다.

TypeScript는 변수와 함수에 타입을 명시할 수 있어서 컴파일 시간에 타입 관련 오류를 확인할 수 있다.

TypeScript의 데이터 타입 종류?

기본 타입(숫자, 문자열, 불리언, null, undefined 등)

객체 타입(인터페이스, 클래스)

함수 타입, 제네릭 타입 등을 지원

TypeScript의 장점?

  • 타입 에러의 사전 방지
  • 코드 가독성과 유지보수성 향상
  • 강력한 개발 도구 지원 (자동 완성, 타입 체크 등)

TypeScript를 사용하는 프로젝트의 초기 설정?

TypeScript 프로젝트를 시작하기 위해서는 tsconfig.json 파일을 생성하고 필요한 설정을 지정해야 한다.

tsconfig.json: 컴파일러 옵션과 프로젝트 설정을 담당

TypeScript의 컴파일?

TypeScript 코드는 .ts 확장자로 작성되며, TypeScript 컴파일러(tsc)를 사용하여 자바스크립트 코드로 변환된다.

 

타입 단언(Type Assertion)?

타입 단언은 개발자가 컴파일러에게 "나는 이 변수의 타입을 알고 있다"고 명시적으로 알려주는 것

예를 들어, variable as Type 형태로 사용할 수 있다.

인터페이스와 클래스의 차이점?

  • 인터페이스: 타입 체크만을 위해 사용
  • 클래스: 객체의 생성과 동작을 정의하는 데 사용

제네릭 타입?

함수나 클래스가 여러 종류의 타입에서 동작하도록 하기 위해 타입을 매개변수화하는 기능

네임스페이스와 모듈의 차이점?

  • 네임스페이스: 코드를 논리적으로 그룹화하여 충돌을 피하는 데 사용
  • 모듈: 파일 기반으로 코드를 구성하여 재사용성을 높이는 데 사용

TypeScript의 추상 클래스(Abstract Class)?

직접 객체를 생성할 수 없는 클래스
다른 클래스에서 상속받아 사용하도록 설계
추상 클래스 내에는 추상 메서드가 포함될 수 있다.

 

타입 가드(Type Guard)?

런타임에서 변수의 타입을 정확하게 판별하기 위한 TypeScript의 기능

typeof, instanceof, in 등을 활용하여 구현할 수 있다.

 

비구조화 할당(구조 분해 할당)?

객체나 배열의 내부 값을 변수로 추출하는 방법

TypeScript에서도 이 기능을 활용할 수 있다.

 

TypeScript에서의 클래스 상속과 인터페이스 구현.

  • 클래스 상속: extends 키워드를 사용하여 부모 클래스의 속성과 메서드를 자식 클래스로 확장할 수 있다.
  • 인터페이스 구현: implements 키워드를 사용하여 클래스가 인터페이스의 규약을 따르도록 한다.
  •  

모듈 시스템?

TypeScript에서 모듈은 코드를 논리적으로 구성하고 재사용하기 위한 방법으로 사용된다.

importexport 키워드를 사용하여 모듈 간의 의존성을 관리할 수 있다.

 

async/await 사용 방법?

async 함수 내에서 await 키워드를 사용하여 비동기 작업을 동기적으로 처리할 수 있다.

await은 Promise가 결과를 반환할 때까지 함수 실행을 일시 중지시킨다.

 

타입스크립트 컴파일 시, "ambient module declaration"이란?

타입스크립트 컴파일러에게 타입 정보를 제공하기 위해 선언하는 방법 중 하나

주로 외부 라이브러리의 타입을 선언할 때 사용

 

타입과 인터페이스를 언제 사용?

  • 타입
    기본 타입이나 유니온, 인터섹션 등 복잡한 타입을 정의할 때 사용
  • 인터페이스
    객체의 구조와 메서드를 정의할 때 사용하며, 클래스나 객체의 구조에 대한 규약을 제공하는 역할
  •  

열거형(Enum)?

이름에 연결된 숫자 또는 문자열 값의 집합을 정의하는 기능

열거형을 사용하면 명시적인 값들을 가지며, 가독성과 유지보수성을 높일 수 있다.

728x90
반응형

'TIL > 취준' 카테고리의 다른 글

React 면접 예상 질문  (0) 2023.08.21
JS 면접 예상 질문  (0) 2023.08.21
웹, HTML/CSS 예상 면접 질문 정리  (0) 2023.08.21
면접 예상 질문 시리즈  (0) 2023.08.01

댓글

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."