[typescript] 기본 타입

Yeeun_Kim·2024년 9월 23일
0

문자열(string)

  • 자바스크립트 변수의 타입이 문자열인 경우
let str: string = 'hi';
타입표기(Type Annotation)

:를 사용하여 자바스크립트 코드에 타입을 정의하는 방식

숫자(number)

  • 타입이 숫자인 경우
let num: number = 10;

진위(boolean)

  • 타입이 진위 값인 경우
let isLoggedIn: boolean = false;

객체(object)

  • 객체 타입은 아래와 같이 정의 가능
  • 다만, 객체 타입은 아래와 같이 정의하는 것보다 인터페이스나 타입 별칭을 사용하는 것이 더 좋다.
let user: object = { name: 'capt', age: 100 };

배열(array)

  • 타입이 배열인 경우
let arr: number[] = [1,2,3];
  • 제네릭을 사용한 경우
let arr: Array<number> = [1,2,3];

튜플(tuple)

  • 배열의 길이가 고정되고, 각 요소의 타입이 지정되어있는 배열 형식
let arr: [string, number] = ['hi', 10];
  • 정의하지 않은 타입, 인덱스로 접근할 경우 오류 발생
arr[1].concat('!'); // Error, 'number' does not have 'concat'
arr[5] = 'hello'; // Error, Property '5' does not exist on type '[string, number]'.

이넘(enum)

  • 특정 값(상수)들의 집합을 의미
enum Avengers { 
  Capt, 
  IronMan, 
  Thor 
}

let hero: Avengers = Avengers.Capt;
  • 인덱스 번호로도 접근 가능
enum Avengers { 
  Capt, 
  IronMan, 
  Thor 
}

let hero: Avengers = Avengers[0];
  • 이넘의 인덱스를 변경하여 사용 가능
enum Avengers {
  Capt = 2,
  IronMan,
  Thor
}

let hero: Avengers = Avengers[2]; // Capt
let hero: Avengers = Avengers[4]; // Thor

any

  • 모든 타입에 대해서 허용한다는 의미
let str: any = 'hi';
let num: any = 10;
let arr: any = ['a', 2, true];

주의사항
any타입을 많이 사용할수록 타입스크립트의 장점이 사라지게 되므로 필요한 경우에만 주의하여 사용하는 것이 좋다.

void

  • 반환 값이 없는 함수의 반환 타입
function printSomething(): void {
  console.log('sth');
}

function returnNothing(): void {
  return;
}

never

  • 절대 발생하지 않는 값을 의미하는 타입. 예를 들어, 함수가 반복문이나 에러 핸들링으로 인해 함수의 끝에 절대 도달하지 않는 경우에 never 타입을 사용할 수 있다.
// 이 함수는 절대 함수의 끝까지 실행되지 않는다는 의미
function loopForever(): never {
  while (true) {
    // ..
  }
}

function neverEnd(): never {
  throw new Error('unexpected');
}

참고문서

https://joshua1988.github.io/ts/guide/basic-types.html#void

0개의 댓글