카테고리 없음

Typescript #2 기본 타입

nh_3521099031483 2024. 5. 3. 16:34

타입스크립트 기본 타입에 대해 알아보자

let car:string = 'bmw'; // car 안에 있는 내용이 문자열이므로 string
car = 3; // 이렇게 car를 string이 아닌 다른 타입으로 재선언 하면 에러가 발생
// 그냥 let car = 'bmw'라고 선언해도 car변수는 string으로 초기화 된다. 이것을 타입 추론이라고 한다.

let age:number = 30;
let isAdult:boolean = true;
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'];

week1.push(3) // 타입이 맞지 않아서 에러가 발생한다.

// 튜플

let b:[string, number]; // 배열과 비슷한 모양인데 인덱스 별로 타입이 다를 때 사용 가능하다.
b = ['z', 1]; // 이렇게 입력하는게 가능하다.
// b = [1, 'z']; // 하지만 이렇게 입력하는 것은 불가능 하다.

b[0]. toLowerCase(); // 문자를 소문자로 바꿔주는 toLowerCase()는 첫번째 인덱스만 사용이 가능하다.
b[1]. toLowerCase(); // 이렇게 되면 에러가 있다고 표시를 해준다.

// void
// void는 함수에서 아무것도 반환하지 않을 때 주로 사용한다.

function sayHello():void{
  console.log('hello')
}

// never
// never는 항상 에러를 반환하거나 영원히 끝나지 않는 함수의 타입으로 사용할 수 있다.

function showError():never{
  throw new Error();
}

function infLoop():never{
  while (true) {
    // do something..
  }
}

// enum
// 자바스크립트에는 없는 타입이다. 비슷한 값들 끼리 묶어놨다고 생각하면 된다.

enum Os {
  Window,// Os.Window = 0 
  Ios, // Os.Ios = 1
  Android // Os.Android = 2
  // 이렇게 enum에 수동으로 값을 주지 않으면 자동으로 0부터 1씩 증가하면서 할당 된다.
}

enum Os2 {
  Window = 3,// Os.Window = 3 
  Ios, // Os.Ios = 4
  Android // Os.Android = 5
}

enum Os3 {
  Window = 3,// Os.Window = 3 
  Ios = 10, // Os.Ios = 10
  Android // Os.Android = 11
}
// 양방향 매핑이 가능하다.
console.log(Os3[10]) // "Ios"
console.log(Os3['Ios']) // 10

enum Os4 {
  Window = 'win',
  Ios = 'ios', 
  Android = 'and'
}

let myOs:Os4; // 타입을 Os이다 라고 설정하게 되면 window, ios, android만 입력할 수 있게 된다.
myOs = Os4.Window // 특정 값만 입력할 수 있게 강제하고 싶을 때, 그 값들이 공통점이 있을 때 사용한다.

// null, undefined

let nu:null = null;
let un:undefined = undefined;