타입스크립트 소개
[장점]
- 안정성
- 컴파일 단계에서 미리 오류를 감지할 수 있다.
- js 실제 런타임에서 오류를 발견할 수 있다.
- 가독성
- type을 보고 해당 로직이 무엇을 하는 지 알 수 있다.
[단점]
- 초기 설정 비용
- 스크립트 언어의 유연성이 떨어진다.
- 컴파일 시간이 길어질 수 있다
- 주석과 추론의 차이
- 타입주석은 해당 값이 어떤 타입을 가져야한다를 명시하는 것
- 타입 추론은 타입 주석을 달지 않아도, 할당된 값의 타입등을 통해 타입이 매치되는 것
[인터페이스]
- 객체의 타입을 정의하는 방법
- interface 키워드를 통해 만들기
- 익명의 interface 만들기
- optional 속성은
?
을 통해 표현
[튜플]
- 튜플은 변경불가한 값을 가지는 배열을 의미
[이넘]
- 이넘(enum)은 열거형 데이터를 타입지정하는 방법
enum Color { RED = 'red', GREEN = 'green', BLUE = 'blue' } const color = Color.BLUE // blue
[대수타입]
- 여러 자료형의 값을 가질 수 있게하는 방법
- 합집합 타입 (둘 중 하나)
number | string
- 교집합 타입 (두개 다 포함)
- 원시타입이 아닌 참고타입에서 사용
- type키워드를 통해 interface의 결합을 하나의 타입으로 지정가능
inferface Name { name: string; } interface Age { age: number; } type Person = Name & Age let outwater: Person = { name: string; age: number }
[optional]
?
키워드를 통해 값/속성이 null 일 때의 상황을 표시- 값이 없다면 undefined를 반환
!
키워드는 값이 있다는 것을 보장할 때 사용
강의 듣고 요약
타입스크립트는 ‘안정성’과 ‘가독성’ 에서 사용 장점을 가진다.
컴파일 단계에서 미리 오류를 감지할 수 있다는 것으로 안정성을 얻을 수 있고, type만을 보고 해당 로직이 무엇을 하는 지 유추할 수 있다는 측면에서 가독성을 가진다.
단점으로는 초기 설정이 필요하고, 스크립트 언어의 유연성이 떨어진다는 점이 있으며, 코드의 양이 방대해질 경우 컴파일 시간이 길어질 수 있다는 점이 있다.
[ 타입주석과 타입추론 ]
타입 주석은 해당 값의 타입을 명시하는 것을 의미하며,
const value : number
const func(a:number, b:number):number
와 같이 사용될 수 있다.
타입 추론은 해당 값이 어떤 타입을 가져야하는 지 계산되어 제시되는 것을 의미한다.
[타입 종류]
객체의 경우 interface 키워드를 통해, 배열의 경우 type[] 을 통해, 열거형데이터의 경우 enum 키워드를 통해 값을 바로 타입자체를 값으로 제한할 수 있다.
여러 자료형을 가지는 경우 type | type
와 같이 지정할 수 있고, 두개의 타입을 반드시 포함해야하는 교집합 타입의 경우 &키워드 로 사용 가능하며, 이 때 interface들을 묶어 type 키워드로 변수화할 수 있다. type Person = interfaceA & interfaceB