[TypeScript] 기본타입

Yeong·2025년 1월 23일

🖐️소개 (Introduction)

프로그램이 유용하려면 숫자, 문자열, 구조체, 불리언 값과 같은 간단한 데이터 단위가 필요합니다. TypeScript는 JavaScript와 거의 동일한 데이터 타입을 지원하며, 열거 타입을 사용하여 더 편리하게 사용할 수 있다.

불리언 (Boolean)

가장 기본적인 데이터 타입은 참/거짓(true/false) 값이다.

let isDone: boolean = false;

숫자 (Number)

JavaScript처럼, TypeScript의 모든 숫자는 부동 소수 값이다. 부동 소수에는 number라는 타입이 붙혀진다. TypeScript는 16진수, 10진수 리터럴에 더불어, ECMAScript 2015에 소개된 2진수, 8진수 리터럴도 지원한다.

let decimal: number = 6;
let hex: number = 0xf00d;
let binary: number = 0b1010;
let octal: number = 0o744;

문자열 (String)

웹 페이지, 서버 같은 프로그램을 JavaScript로 만들 때 기본적으로 텍스트 데이터를 다루는 작업이 필요하다. 다른 언어들처럼, TypeScript에서는 텍스트 데이터 타입을 string으로 표현한다.

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

템플릿 문자열 을 사용하면 여러 줄에 걸쳐 문자열을 작성할 수 있으며, 표현식을 포함시킬 수도 있다. 이 문자열은 백틱 문자로 감싸지며, ${ expr }과 같은 형태로 표현식을 포함시킬 수 있다.

let fullName: string = `Bob`;
let age: number = 28;
let sentence: string = `Hello, my name is ${ fullName }.
I'll be ${ age + 1 } years old next month.`;

위는 아래 sentence선언과 동일하다.

let sentence: string = "Hello, my name is " + fullName + ".\n\n" +
    "I'll be " + (age + 1) + " years old next month.";

배열 (Array)

TypeScript는 JavaScript처럼 값들을 배열로 다룰 수 있게 해준다. 배열 타입은 두 가지 방법으로 쓸 수 있는데 첫 번째 방법은, 배열 요소들을 나타내는 타입 뒤에 []를 쓰는 것이다:

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

두 번째 방법은 제네릭 배열 타입을 쓰는 것이다. Array<elemType>

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

튜플 (Tuple)

튜플 타입을 사용하면, 요소의 타입과 개수가 고정된 배열을 표현할 수 있다. 단 요소들의 타입이 모두 같을 필요는 없다. 예를 들어, number, string 이 쌍으로 있는 값을 나타내고 싶을 수 있습니다:

// 튜플 타입으로 선언
let x: [string, number];
// 초기화
x = ["hello", 10]; // 성공
// 잘못된 초기화
x = [10, "hello"]; // 오류

정해진 인덱스에 위치한 요소에 접근하면 해당 타입이 나타난다.

console.log(x[0].substring(1)); // 성공
console.log(x[1].substring(1)); // 오류, 
'number'에는 'substring' 이 없습니다.

x[3] = "world"; // 오류, '[string, number]' 타입에는 프로퍼티 '3'이 없다.

console.log(x[5].toString()); // '[string, number]' 타입에는 프로퍼티 '5'가 없다.

정해진 인덱스 외에 다른 인덱스에 있는 요소에 접근하면, 오류가 발생하며 실패한다.

Any

애플리케이션을 만들 때, 알지 못하는 타입을 표현해야 할 수도 있다. 이 값들은 사용자로부터 받은 데이터나 서드 파티 라이브러리 같은 동적인 컨텐츠에서 올 수도 있다. 이 경우 타입 검사를 하지 않고, 그 값들이 컴파일 시간에 검사를 통과하길 원한다. 이를 위해, any 타입을 사용할 수 있다.

let 이름: any = 'kim';
이름 = 123;
이름 = undefined;
이름 = [];

비상시 쓰는 변수 타입체크 해제기능 이런 용도로 쓰는게 좋다.(타입 실드를 씌워야 타입스크립트를 쓰는 의미가 있는거니까!! 마구 사용하지않기.)

unknown

any와 똑같이 모든 타입을 집어넣을 수 있다.

let 이름: unknown = 'kim';
이름 = 123;
이름 = undefined;
이름 = [];

이래도 에러가 나지 않는다.
아직 어떤 타입이 들어올지 모를 경우, 다양한 타입을 집어넣어야할 경우 사용하는 것을 추천 !

  1. unknown 타입엔 모든 자료 다 집어넣을 수 있음
  2. 자료집어넣어도 타입은 그대로 unknown !

0개의 댓글