기본 타입

임준형·2023년 3월 31일

TypeScript

목록 보기
2/6

boolean

가장 기본적인 데이터 타입으로 JavaScript, TypeScript에서 boolean 값이라고 일컫는 참/거짓(true/false) 값

let isDone: boolean = false;

number

JavaScript처럼, TypeScript의 모든 숫자는 부동 소수 값

let num: number = 1;

string

let color: string = "blue";
color = 'red';

array

배열 요소들을 나타내는 타입 뒤에 []를 쓰는 방법

let list: number[] = [1, 2, 3];

제네릭 배열 타입(Array<elemType>)을 쓰는 방법

let list: Array<number> = [1, 2, 3];

tuple

let x: [string, number];
x = ["hello", 10];

any

사용자로부터 받은 데이터나 서드 파티 라이브러리 같은 동적인 컨텐츠에서 온 타입을 검사하지 않고 컴파일 하고자 할 때 사용

let notSure: any = 4;
notSure = "maybe a string instead";
notSure = false;

여러 다른 타입이 섞인 배열 등 타입의 일부만 알고 전체는 알지 못할 때 유용

let list: any[] = [1, true, "free"];
list[1] = 100;

void

void는 어떤 타입도 존재할 수 없음을 나타냄
any의 반대 타입 void는 보통 함수에서 반환 값이 없을 때 반환 타입을 표현하기 위해 쓰임

function printMessage(): void {
    console.log("This is my message");
}

null and undefined

TypeScript는 undefinednull 둘 다 각각 자신의 타입 이름으로 undefined , null로 사용
void처럼 그 자체로 유용한 경우는 거의 없음

let u: undefined = undefined;
let n: null = null;

never

never 타입은 절대 발생할 수 없는 타입으로 함수 표현식이나 화살표 함수 표현식에서 항상 오류를 발생시키거나 절대 반환하지 않는 경우 사용

function error(message: string): never {
    throw new Error(message);
}

function fail(): never {
    return error("Something failed");
}
function infiniteLoop(): never {
    while (true) {
    }
}

enum

enum은 값의 집합에 더 나은 이름을 붙여주고자 할때 사용

enum Color {Red, Green, Blue}
let c: Color = Color.Green;

0대신 1부터 시작해 번호를 매기도록 바꾸기

enum Color {Red = 1, Green, Blue}
let c: Color = Color.Green;

모든 값 수정 설정

enum Color {Red = 1, Green=2, Blue=4}
let c: Color = Color.Green;

union

변수에 설정 가능한 타입 값을 string, undefined 모두 가능하게 하려면 파이프( | )를 사용

function setInfo(id: number, name: string | undefined) {
  return { id, name };
}

사용자 정의 타입

복잡한 타입을 사용자 정의하여 재사용가능
타입 별칭(Type Alias)을 정의 하려면 type 키워드를 사용

// 사용자 정의 타입 operation 정의
// 타입 별칭(Type Alias)
type operation = {
  data: number[],
  output: (num: number) => number[]
};

// 사용자 정의 타입 operation 적용 예시
let sum: operation = {
  data: [10, 30, 60],
  output(num) {
    return this.data.map(n => n + num);
  }
};

let multiply: operation = {
  data: [110, 230, 870, 231],
  output(num) {
    return this.data.map(n => n * num);
  }
};

type assertions

type assertions은 다른 언어의 타입 변환(형 변환)과 유사하지만, 데이터를 재구성하지는 않음
TypeScript에 type assertions는 런타임에 영향을 미치지 않고 컴파일러만 이를 사용

angle-bracket 문법

let value: any = "this is a string";
let strLength: number = (<string>value).length;

as 문법

let value: any = "this is a string";
let strLength: number = (value as string).length;

0개의 댓글