404 page not found : 기록장

[Typescript] Typescript의 기본 Type 본문

TYPESCRIPT

[Typescript] Typescript의 기본 Type

Hannah_J 2023. 3. 3. 18:55

Typescript의 기본 Type

Typescript는 Javascript의 Superset으로서, Javascript의 모든 기능을 포함하고 있습니다. 뿐만 아니라, 정적 타입 체크를 지원하는 등 타입 시스템이 강화되어 있습니다. 이번 포스트에서는 Typescript에서 제공하는 기본 타입에 대해 알아보겠습니다.

Boolean

Boolean은 참(true) 또는 거짓(false)을 나타내는 타입입니다. 다음과 같이 선언할 수 있습니다.

let isDone: boolean = false;

Number

Number는 숫자를 나타내는 타입입니다. Javascript와 마찬가지로 모든 숫자를 포함하고 있으며, 16진수 및 10진수 리터럴과 함께 사용할 수 있습니다.

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

String

String은 문자열을 나타내는 타입입니다. 작은따옴표(')나 큰따옴표(")로 묶어서 사용할 수 있습니다.

let name: string = "Typescript";
let sentence: string = `Hello, my name is ${name}.`;

Array

Array는 배열을 나타내는 타입입니다. 다음과 같이 두 가지 방법으로 선언할 수 있습니다.

let list: number[] = [1, 2, 3];
let anotherList: Array<string> = ["Typescript", "Javascript", "Python"];

Tuple

Tuple은 고정된 개수의 요소를 가진 배열을 표현하는 타입입니다. 요소의 타입이 각각 지정되어 있습니다.

let x: [string, number];
x = ["Typescript", 10]; // OK
x = [10, "Typescript"]; // Error

Enum

Enum은 숫자나 문자열 값 집합에 이름을 부여하는 타입입니다.

enum Color {
  Red,
  Green,
  Blue,
}

let c: Color = Color.Green;
console.log(c); // 1

Any

Any는 타입 검사를 하지 않는 타입입니다. 가능한 사용을 지양해야 합니다.

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

Void

Void는 어떤 타입도 존재하지 않음을 나타내는 타입입니다. 반환 값이 없는 함수의 반환 타입으로 사용됩니다.

function warnUser(): void {
  console.log("This is a warning message.");
}

Null and Undefined

Null과 Undefined는 각각 null과 undefined 값만 가질 수 있는 타입입니다.

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

Typescript에서는 --strictNullChecks 옵션을 사용하여 Null과 Undefined를 엄격하게 체크할 수 있습니다.

Never

Never는 절대 발생하지 않는 값을 나타내는 타입입니다. 예를 들어, 항상 예외를 던지거나 무한 루프를 도는 함수의 반환 타입으로 사용됩니다.

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

function infiniteLoop(): never {
  while (true) {}
}

Object

Object는 객체를 나타내는 타입입니다. 객체는 key-value 쌍으로 이루어진 데이터 구조입니다. 다음과 같이 선언할 수 있습니다.

let obj: object = {
  name: "Typescript",
  version: 4.3,
};

하지만, Object 타입은 key-value 쌍의 구체적인 타입을 명시하지 않으므로, 객체의 프로퍼티에 접근하거나 객체를 다른 곳에 전달할 때 타입 정보가 유실될 수 있습니다. 따라서, 가능한한 구체적인 타입을 사용하는 것이 좋습니다.

 

Type Assertion

Type Assertion은 타입을 강제로 지정하는 것입니다. 다음과 같이 사용할 수 있습니다.

let someValue: any = "Typescript";
let strLength: number = (<string>someValue).length;

또는 다음과 같이 사용할 수도 있습니다.

let someValue: any = "Typescript";
let strLength: number = (someValue as string).length;

Type Assertion은 가능한 사용을 지양해야 합니다. 타입 검사를 우회하는 것이기 때문에, 잘못 사용하면 오류가 발생할 수 있습니다.

이상으로, Typescript에서 제공하는 기본 타입과 몇 가지 고급 타입에 대해 살펴보았습니다. 타입 시스템을 적절하게 활용하여 코드의 가독성과 안정성을 높이는 것이 중요합니다.

'TYPESCRIPT' 카테고리의 다른 글

[Typescript] Any와 Unknown  (0) 2023.03.03
[Typescript] Generic  (0) 2023.03.03
[Typescript] Union Type, Intersection Type  (0) 2023.03.03
[Typescript] type vs interface 차이  (0) 2023.03.03
[Typescript] Typescript를 사용하는 이유  (0) 2023.03.02