TypeScript

타입스크립트란?
타입스크립트 = 자바스크립트 + 타입체크
타입스크립트 환경에서 자바스크립트를 코딩하면 동작하지만,
자바스크립트 환경에서 타입스크립트를 코딩하면 동작하지 않는다.
타입스크립트가 필요한 이유
- 자바스크립트 코드는 상대적으로 지저분하다.
- 코드의 스케일이 커지면 자바스크립트는 코드 관리에 어려움이 있다
타입스크립트를 사용하면 좋은 점
- 자바스크립트 기반보다 버그가 줄어든다.
- 유지보수에 용이하다.
- 코드의 퀄리티가 증가한다.
- 디버깅에 용이하다.
데이터 타입을 표기하면 좋은 점
- 객체 지향 프로그래밍의 특성 지원
- 클래스, 인터페이스, 생성자, 접근 지정자 등 객체 지원 프로그래밍 특성 지원
- 타입스크립트를 이해하면, 자바스크립트에 객체 지향 코드 적용 가능
데이터 타입과 추론
데이터 타입이 중요한 이유
- 자바스크립트는 변수에 데이터 타입의 값을 할당할 수 없다.
- 따라서 자바스크립트는, 변수가 의도치 않은 타입으로 변하는 것을 방지하기 어렵다.
타입 추론
- 타입스크립트는 타입 추론 기능을 통해 변수의 타입을 자동으로 판단한다.
- 타입스크립트는 컴파일러가 초기에 할당된 값을 바탕으로 변수 타입을 추론한다.
- 타입 추론은 코드를 간결하게 해주나, 타입을 명시적으로 지정해 주는것이 더 명확하다.
- 타입 추론이 모호한 경우나, 복잡한 로직에서는 타입을 명시해주는 것이 좋다.
데이터 타입의 종류
- 타입스크립트에는 다양한 데이터 타입이 존재한다
- 데이터 타입은 크게 기본 데이터 타입, 객체 타입, 특수 타입이 있다
기본 데이터 타입
- number : 숫자 타입으로 정수, 실수를 포함
- string : 문자열
- boolean : 참/거짓을 나타낸다
- null : 값이 없음을 나타낸다
- undefined : 값이 할당되지 않는 변수의 기본값인 타입
객체 타입
- object : 객체를 나타낸다
- array : 동일한 탕비의 요소를 가진 배열
- tuple : 각 요소가 다른 타입을 가질수 있는 배열
특수 타입
- any : 어떠한 타입이든 할당될 수 있는 타입(타입을 지정하기에 모호할 때 임시로 사용)
- unknown : 타입을 미리 알 수 없는 경우 사용하는 타입
인터페이스
- 인터페이스는 사용자 정의 타입이다.
- 선택적 프로퍼티로 지정하려면 속성값 뒤에 ?를 붙여준다.
- 메소드도 인터페이스 내에서 선언 가능하다. (메소드 오버라이딩이 필요하다.)
- 인터페이스를 클래스에 상속 가능하다.(implements 키워드 사용)