- Boolean: true 또는 false 값을 가지는 논리적인 데이터 타입
- Number: 부동 소수점 숫자뿐만 아니라 정수 및 실수 값을 포함하는 숫자 데이터 타입
- String: 문자의 시퀀스. 단일 따옴표나 쌍따옴표로 둘러싸여 있는 타입
- Array: 동일 한 유형의 요소들의 순서 있는 집합
- Tuple: 고정된 수의 요소로 구성된 배열. 각 요소의 유형은 미리 정의되어 있다.
- Enum: 숫자 또는 문자열 값 집합에 대한 열거형 타입
- Any: 모든 유형의 값을 나타낼 수 있는 타입. 타입 검사를 우회할 때 사용
- Void: 어떠한 유형도 없는 것. 주로 함수가 반환하지 않는 경우에 사용
- Null or Undefined: 각각 값이 없음을 나타내는 타입
- Never: 절대 발생하지 않는 값의 타입을 나타냄. 예외를 throw하는 함수의 반환 유형을 사용
- Object: 모든 primitive 타입이 아닌 타입을 나타낼 수 있는 타입
- Unknown: Any와 유사하지만, 타입 검사를 통해 좁히거나 확장하는 과정이 필요. 타입 단언이나 타입 가드를 통해 유용하게 사용할 수 있다.
// string
let dog:string = 'dog';
// Number
let age:number = 30;
// Boolean
let isAdult:boolean = true;
// Array
let a:number[] = [1, 2, 3]
let a2: Array<number> = [1, 2, 3]
let week1:string[] = ['mon', 'tue', 'wed']
let week2:Array<string> = ['mon', 'tue', 'wed']
// Tuple
let b:[string, number]; // 배열의 각 요소의 타입 지정 가능
b = ['z', 1]
// Void, Never
function sayHello():void{
console.log('hello');
} // 입력값 반환이 없을 경우
function showError():never {
throw new Error();
} // 항상 에러 반환
function infLoop():never{
while (true) {
// do something
}
} 영원히 끝나지 않는 함수 타입
// enum
enum Os {
Window,
Ios,
Android
} // 요소에 특별히 숫자를 부여해주지 않으면 0부터 시작된다. 요소에 숫자를 부여하지 않으면 순서대로 증가한다.
// null, undefined
let a:null = null;
let b:undefined = undefined;
// object
let person: { name: string, age: number } = {
name: "John",
age: 30
};