
let num:number = 3;
let isMale:boolean = true;
let a:null = null;
let b:undefined = undefined;
let age:number[] = [20, 25, 30]
// let age:Array<number> = [20, 25, 30]
num = 'a' // 에러 발생
age.push("삼십") // 에러 발생
// 튜플 (Tuple)
let a:[string, number] // 첫번 째 요소가 문자, 두번 째 요소가 숫자
a=["나이", 20]
a=[30, "나이"] // 에러 발생
a=["나이", 20, 30] // 에러 발생
Tuple은 배열이지만 서로 다른 타입의 값을 배열로 넣을 때 사용된다.
✍ Array 와 Tuple 차이
Array :
let ageArr:number[] = [20, 25, 30]
ageArr라는 배열에는number타입만 저장할 수 있다.Tuple :
let age:[string, number]
ageTuple라는 배열에는string과number타입을 저장할 수 있다.
// void, never
function print():void{
console.log("안녕하세요👋");
}
let a: never;
a=10; // 에러 발생
function printError():never{
throw new Error();
}
function infLoop():never{
while(true){
...
}
}
void는 함수 내부에
return이 없는 경우 주로 사용한다.
never는 값을 포함할 수 없는 타입의 변수를 선언할 때, 항상 오류를 출력하거나return값을 절대로 내보내지 않을 때 사용한다.
// enum
enum snack{
Doritos,
Lays,
Cheetos,
}
enum snack{
Doritos = 10,
Lays = 5,
Cheetos,
}
console.log(snack[5]) // 'Lays'
console.log(snack['Lays']) // 5
let mySnack:snack
mySnack = snack.Lays;
console.log(mySnack) // 5
enum은 비슷한 종류의 값들을 모아 놓은 타입이라고 생각하면 될 것 같다. 즉, 특정 값을 변수에 강제하고 싶을 때와 비슷한 값들을 저장하고 싶을 때 사용된다. 첫 번째 예제 코드의 컴파일 결과를 보면 아래와 같다.위에 값 부터 0, 1, 2 으로 초기화 되어있고 두 번째 예제 코드처럼 10, 5로 값을 넣어주면 10, 5, 6으로 값이 변경된다.
enum에서 가장 중요한 개념은 양방향 맵핑이라고 생각되는데 위 예제 코드처럼Lays로 5를 출력할 수도 있고 5로 'Lays'를 출력할 수도 있다.