[TypeScript] 기본 타입

dev.galim·2023년 9월 7일
0

TypeScript

목록 보기
1/10

기본 타입

→ object와 reference 형태가 아닌 실제 값을 저장하는 자료형

  • string → 문자열을 저장하는 타입 let str: string = "hi";
  • Boolean → 참과 거짓을 저장하는 타입 let inSucceeded: boolean = true;
  • number → 부동 소수 값을 저장하는 타입 2진수, 8진수, 10진수, 16진수 사용 가능 let decimal: number = 6; let hex: number = 0xf00d;
  • null → 값이 의도적으로 비어있는 상태를 저장하는 타입 let n: null = null;
  • undefined → 아무 값이 할당되지 않은 상태를 저장하는 타입 let u: undefined = undefined;
  • typeof로 데이터 타입을 확인 typeof null // ‘object’ typeof undefined // ‘undefined’

참조 자료형

→ 객체, 배열, 함수 등과 같은 Object 형식의 타입

메모리에 값을 주소로 저장하고, 출력 시 메모리 주소와 일치하는 값을 출력

  • object → 기본 자료형에 해당하지 않는 타입

    string, boolean, number, null, undefined를 제외한 타입

    function create(o: object):void{}
    
    create({prop: 0}) // 성공
    create([1, 2, 3]) // 성공
    create("string") // error
    create(false) // error
    create(42) // error
    create(null) // error
    create(undefined) // error
  • array → 배열을 저장하는 타입

    let arr: number[] = [1, 2, 3]

    • 제네릭을 사용한 타입 표기도 가능함

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


추가 제공 자료형

→ 타입스크립트에서 개발자의 편의를 위해 추가로 제공하는 타입

  • tuple → 길이와 각 요소의 타입이 정해진 배열을 저장하는 타입
    let arr: [string, number] = ["hi", 6];
    
    arr[1].concat("!"); // Error, concat은 string 전용 함수이기 때문에 에러가 발생함.
    arr[3] = "hello"; // Error, 정의하지 않은 index 호출 시 에러가 발생함.
  • enum → 특정 값(상수)들의 집합을 저장하는 타입
    enum Car { BUS, TAXI, SUV };
    
    let bus: Car = Car.BUS;
    let bus: Car = Car[0]; // 인덱스 번호로 접근
    
    // 인덱스를 사용자 편의로 변경
    enum Car {BUS = 1, TAXI = 2, SUV = 3 };
    let texi: String = Car[2];
    
    enum Car { BUS = 2, TAXI, SUV };
    let taxi: String = Car[3];
    • 장점
      1. 코드가 단순해지며, 가독성이 좋음
      2. 인스턴스 생성과 상속을 방지하여 상수값의 타입안정성이 보장됨
  • any → 모든 타입을 저장 가능 컴파일 중 타입 검사를 하지 않음
    let str: any = "hi";
    let num: any = 10;
    let arr: any = ["a", 2, true];
  • void → 보통 함수에서 반환 값이 없을 때 사용. any의 반대 타입 변수에서는 undefined와 null만 할당하고, 함수에서는 반환값을 설정할 수 없는 타입
    let unknown: void = undefined;
    
    function sayHi(): void {
    	console.log("hi");
    }
  • never → 절대 발생할 수 없는 타입. 항상 오류를 발생시키거나 절대 반환하지 않는 반환 타입. 종료되지 않는 함수.
    function neverEnd(): never {
    	whild(true){}
    }
    
    // break로 인해 함수가 종료되기 때문에 에러 발생
    function neverEnd(): never {
    	whild(true){}
    	break;
    }
    
    // 항상 오류를 발생시키는 함수
    function error(message: string): never {
    	throw new Error(message);
    }
profile
열심히 해볼게요

0개의 댓글