TypeScript는 JavaScript의 타입을 상속한다.
잘 알지 못하는 타입을 표현해야 할 때 any를 사용할 수 있다.
하지만 타입을 쓰는 이유는 명확한 타입을 지정하여 타입 안정성을 확보하기 위해서이기 때문에 최대한 쓰지 않는 것이 좋다.
any를 대체할 타입으로 unknown이 있다.
any와 비슷하게 모든 타입을 저장할 수 있다.
그렇지만 값을 다른 타입의 변수에 할당하려면 명시적으로 타입을 확인해야 하기 때문에 더 안전하다.
타입을 보장하는 방법으론 타입 단언(Type Assertion) 하는 방법과 typeof로 타입을 미리 체크한 뒤 변수에 할당하는 방법이 있다.
let unknownValue: unknown
//타입 단언(Type Assertion)
stringValue = unknownValue as string
let unknownValue: unknown
let stringValue: string
// typeof로 타입 체크
if (typeof unknownValue === 'string') {
stringValue = unknownValue;
}
여러 타입 중 하나를 가질 수 있는 변수를 선언할 때 사용된다.
|
연산자를 사용하여 둘 이상의 타입을 결합하여 표현한다.
type value = string | number
enumerated type(열거형 데이터 타입)
enum을 사용하면 상수의 그룹화를 통해 값들의 집합을 명시할 수 있다.
컴파일 시에 자동으로 숫자 값으로 매핑되므로 따로 값을 할당할 필요가 없다.
(PrintMedia는 별도의 값이 설정되지 않을 경우 0부터 시작한다.)
enum의 속성값으로는 문자열 혹은 숫자만 허용하며, 선언할 때 이후에 변경할 수 없다.
enum Language = {
korean = 'ko',
english = 'en',
spanish = 'es'
키-값 쌍으로 구성된 객체를 정의하는 방식
객체 리터럴을 사용할 땐 어떤 타입의 값도 대입할 수 있으며 새로운 속성을 자유롭게 추가할 수 있다.
const obj = {
a: [1, 2, 3],
b: 'b',
c: 4
}