본문 바로가기

Frontend/typescript

Typescript 배우기 2(타입종류)

// index.ts

// string
let car: string = 'bmw';

// 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'];

console.log(age, isAdult, a, a2, week1, week2);

// 튜플 Tuple

let b: [string, number];

b = ['z', 1];
// b = [1, 'z']; error

b[0].toLowerCase();
// b[1].toLowerCase(); error

// void, never
function sayHello(): void {
  // void - 주어진 표현식을 평가하고 undefined를 반환
  console.log('hello');
}

function showError(): never {
  // never - 일반적으로 함수의 리턴 타입으로 사용
  // 함수의 리턴 타입으로 never가 사용될 경우, 항상 오류를 출력하거나 리턴 값을 절대로 내보내지 않음을 의미
  // 이는 무한 루프(loop)에 빠지는 것과 같다

  throw new Error();
}

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

// enum

enum Os {
  // enum - 열거형 데이터 타입
  // 멤버라 불리는 명명된 값의 집합을 이루는 자료형으로  기억하기 어려운 숫자 대신 친숙한 이름으로 접근/사용하기 위해 활용할 수 있다
  // 열거된 각 멤버는 별도의 값이 설정되지 않은 경우 기본적으로 0부터 시작
  Window, // (enum member) os.Window = 0
  Ios = 3, // 값을 지정할 경우, 이후 멤버의 값은 +1씩 증가
  Android, // (enum member) os.Android = 4
}

console.log(Os[3]); // Ios
console.log(Os['Window']); // 0

let myOs: Os;
myOs = Os.Window;
// 특정값을 입력하고자 강제하고 싶을 때, 그 값들이 공통점이 있을 때 사용

// null, undefined

let c: null = null;
let d: undefined = undefined;

https://www.youtube.com/watch?v=70w82P-KiVM 

https://yamoo9.gitbook.io/typescript/types/enum

 

enum 타입 - TypeScript Guidebook

enum은 다음과 같은 JavaScript 코드로 컴파일 됩니다. enum 데이터 코드는 멤버는 숫자 또는 데이터 값을 속성으로 하는 객체를 생성하는 코드로 변환됩니다.

yamoo9.gitbook.io

 

728x90