타입스크립트는 자바스크립트와 거의 동일한 데이터 타입을 지원한다.
boolean
, number
, string
, array
//boolean type
let isDone: boolean = false;
//number type
const num: number = 4;
//string type
let color: string = "blue";
let sentence: string = `The sky is ${color}`;
//배열타입에는 두가지 방법이 있음
//1.배열요소를 나타내는 타입 뒤에 [] 붙이기
let list: number[] = [1, 2, 3];
//2. Generic array type
let lists: Array<number> = [1, 2, 3];
tuple
//Tuple Type
//요소의 타입과 갯수가 고정된 배열을 표현 할 수 있다.
let x: [string, number];
x = ["hello", 3];
x = [3, "hello"]; //오류 발생
enum
//열거(Enum)
//표준 자료형 집합과 사용하기 유용한 데이터형
enum Color {
Red,
Green,
Yellow,
}
let c: Color = Color.Green;
//기본적으로 0부터 시작에서 멤버들의 번호를 매긴다
//번호는 수동으로 재할당 가능하다!
enum Weather {
Spring = 1,
Summer,
Autumn = 4,
Winter,
}
let seasonName: string = Weather[4];
//매겨진 번호를 활용하여 enum 멤버의 이름을 알수 있다.
console.log(seasonName); //Autumn
any
//any
//애플리케이션을 만들때 값의 타입을 알지 못한 경우 사용하는 타입
let value: any = "hi";
value = 555;
value = true;
✨ 타입의 일부만 알고 전체는 알지 못할때 유용하다
void
//void
//어떤 타입도 존재 할 수 없음을 의미(any와 반대 개념)
//보통 함수에 리턴값이 없을 때 리턴타입을 표현하기 위해 쓰임
function greeting(): void {
console.log("Hi");
}
✨ void를 타입 변수에 선언하는 것은 유용하지 않다 → 변수에는 null
또는 undefined
만 할당 가능하기 때문이다
null, undefined
// 이 밖에 이 변수들에 할당할 수 있는 값이 없습니다!
let u: undefined = undefined;
let n: null = null;
never
//never
//절대 발생할 수 없는 타입을 나타낸다
function error(msg: string): never {
throw new Error(msg);
}
Object
원시 타입이 아닌 타입
Type assertions
//타입단언(Type assertions)
//타입단언은 개발자가 값에 대해 더 잘 알고 있을 때 컴파일러에게 '내가 무엇을 하는지 잘안다'라고 말해주는 방법
//1. angle-bracket 방법
let val: any = "this is a string";
let valLength: number = (<string>val).length;
//2. as- syntax
let val: any = "this is a string";
let valLength: number = (val as string).length;