leexx
처음 배우는 마음으로
leexx
전체 방문자
오늘
어제
  • 분류 전체보기 (68)
    • 막개발글 (12)
    • 자바스크립트 JavaScript (17)
    • 우아한테크코스 (3)
      • 프리코스 (3)
    • 타입스크립트 TypeScript (2)
    • 리액트 React (9)
      • 리액트 React (4)
      • ReactQuery (3)
      • ReduxToolkit (1)
    • 스프링 Spring (2)
      • 전체 글 (2)
    • 코틀린 Kotlin (4)
    • 자바 Java (9)
    • 파이썬 Python (3)
      • Selenium (2)
    • SQL (1)
    • 깃허브 GitHub (1)
    • 알고리즘 Algorithm (5)
    • 일상글 (0)

인기 글

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
leexx

처음 배우는 마음으로

타입스크립트 TypeScript

타입스크립트 기초 - 단일값 / 복합값 / 특이타입 / 타입강제

2023. 5. 15. 03:12

단일 값

불리언 (boolean)

  • true, false
let isDone: boolean = false;

숫자 (number)

  • 부동 소수값
  • 16진수, 10진수, 2진수, 8진수 리터럴도 지원
let decimal: number = 6;
let hex: number = 0xf00d;
let binary: number = 0b1010;
let octal: number = 0o744;

문자열 (string)

  • 큰따옴표, 작은따옴표, 템플릿 리터럴 모두 포함
let color: string = "blue";
color = 'red';

복합

배열 (Array)

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

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

튜플 (Tuple)

  • 요소의 타입과 갯수가 고정된 배열
  • 순서를 지켜야 함
// 튜플 타입으로 선언
let x: [string, number];

// 초기화
x = ["hello", 10]; // 성공

// 잘못된 초기화
x = [10, "hello"]; // 오류, 순서가 다르다 

열거 (Enum)

  • Enum = Enumaration (열거)
  • 값의 집합에 더 나은 이름을 붙여줄 수 있음
// 아무것도 입력하지 않은 경우, 알아서 0, 1, 2가 들어감
enum Color {
    Red, // 알아서 0 
    Green, // 알아서 1
    Blue // 알아서 2
};

let c: Color = Color.Green;
// 시작 값만 정해줄 수 있음
enum Color {
    Red = 10, 
    Green, // 알아서 11
    Blue // 알아서 12
};

let c: Color = Color.Green; // 11
// 모든 값을 정해줄 수 있음
enum Color {
      Red = 100, 
    Green = 200, 
    Blue = 300
};

let c: Color = Color.Green; // 200

객체 (Object)

  • 원시타입이 아닌 타입
    • number, string, boolean, bigint, symbol, null, 또는 undefined 가 아닌 나머지
let obj: object = {};
let arr: object = [];
let func: object = function () {};
let nullValue: object = null;
let date: object = new Date();

특이 타입

Any

  • 어떤 타입이 와도 괜찮은 경우
let notSure: any = 4;
notSure = "maybe a string instead";
notSure = false; // 성공, 분명히 부울입니다.

Void (함수에서 반환 타입에서 주로 사용)

  • 어떤 타입도 존재하지 않음
function warnUser(): void {
    console.log("This is my warning message");
}

Null and Undefined

  • null, undefined 에서 사용
// 이 밖에 이 변수들에 할당할 수 있는 값이 없습니다!
let u: undefined = undefined;
let n: null = null;

Never

  • 절대 발생할 수 없는 타입
    • 무조건 오류가 발생한다던가, 종료를 못해서 반환을 못하던가
// never를 반환하는 함수는 함수의 마지막에 도달할 수 없다.
function error(message: string): never {
    throw new Error(message);
}

// 반환 타입이 never로 추론된다.
function fail() {
    return error("Something failed");
}

// never를 반환하는 함수는 함수의 마지막에 도달할 수 없다.
function infiniteLoop(): never {
    while (true) {
    }
}

타입 강제 (Type assertion)

  • 컴파일러에게 "날 믿어, 난 내가 뭘 하고 있는지 알아"라고 말해주는 방법
  • angel-bracket, as 두 가지 방법이 있음
// angel-barcket
let myStr: any = "this is string";
let ll: number = (<string>myStr).length; // myStr 은 무조건 string 이라는 의미
// as
let myStr: any = "this is string";
let ll: number = (myStr as string).length; // myStr 은 무조건 string 이라는 의미

 

참고

  • https://typescript-kr.github.io/pages/basic-types.html
  • https://inpa.tistory.com/entry/TS-%F0%9F%93%98-%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%ED%83%80%EC%9E%85-%EC%84%A0%EC%96%B8-%EC%A2%85%EB%A5%98-%F0%9F%92%AF-%EC%B4%9D%EC%A0%95%EB%A6%AC#%ED%83%80%EC%9E%85_-_type_alias

'타입스크립트 TypeScript' 카테고리의 다른 글

타입스크립트 심화 - 타입 결합 (유니온, 교차) / 인터페이스 / 제네릭  (0) 2023.05.16
    '타입스크립트 TypeScript' 카테고리의 다른 글
    • 타입스크립트 심화 - 타입 결합 (유니온, 교차) / 인터페이스 / 제네릭
    leexx
    leexx

    티스토리툴바