개발노트

2. [TypeScript] any, unknown, readonly 등 여러 타입 본문

웹 개발/TypeScript

2. [TypeScript] any, unknown, readonly 등 여러 타입

mroh1226 2023. 7. 31. 16:42
반응형

any

any는 모든 타입을 허용하는 동적 타입으로, 컴파일러가 해당 값에 대해 타입 검사를 수행하지 않습니다. any를 사용하면 타입 체크를 우회할 수 있지만, 타입 안정성을 잃을 수 있으므로 사용을 최소화하는 것이 좋습니다.

let anyValue: any = 10;
anyValue = "Hello";
anyValue = true;
console.log(anyValue); // Output: true


unknown

unknown은 any와 비슷하지만, any보다 타입 안정성을 유지할 수 있는 타입입니다. unknown은 타입이 무엇인지 모를 때 사용하며, 타입 체크를 거쳐야만 사용할 수 있습니다.

function processValue(value: unknown) {
  if (typeof value === "number") {
    console.log("Value is a number:", value);
  } else if (typeof value === "string") {
    console.log("Value is a string:", value);
  } else {
    console.log("Value is of unknown type:", value);
  }
}

processValue(42); // Output: Value is a number: 42
processValue("Hello"); // Output: Value is a string: Hello
processValue(true); // Output: Value is of unknown type: true


undefined

undefined는 값이 할당되지 않은 상태를 나타내는 타입이자 값입니다. 변수를 선언하고 초기화하지 않으면 기본적으로 undefined로 할당됩니다.

let undefinedValue: undefined;
console.log(undefinedValue); // Output: undefined



never

never는 절대 발생하지 않는 값을 나타내는 타입입니다. 예를 들어, 항상 예외를 던지는 함수의 반환 타입으로 사용될 수 있습니다.

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

throwError("Something went wrong!"); // Throws an error and never returns


Array

Array는 배열을 나타내는 제네릭 타입으로, 배열 요소의 타입을 지정하여 사용합니다.

let numbers: Array<number> = [1, 2, 3, 4, 5];
console.log(numbers); // Output: [1, 2, 3, 4, 5]


Tuple

Tuple은 고정된 길이의 배열을 나타내는 타입으로, 각 요소의 타입이 정확히 지정됩니다.

let tupleValue: [string, number] = ["Alice", 30];
console.log(tupleValue); // Output: [ 'Alice', 30 ]


enum

enum은 열거형 타입으로, 관련된 상수들을 그룹화하여 사용할 수 있습니다.

enum Color {
  Red,
  Green,
  Blue,
}

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

 

object

object는 JavaScript의 객체를 나타내는 타입입니다. 배열, 함수, 객체 등 모든 객체에 해당합니다.

let person: object = { name: "John", age: 30 };
console.log(person); // Output: { name: 'John', age: 30 }

 

readonly

readonly를 사용하면 요소를 수정, 삭제할 수 없으며, 읽기만 가능합니다.

 

void

void는 함수의 반환 타입으로 사용되며, 함수가 값을 반환하지 않음을 나타냅니다. (굳이 따로 지정할 필요 없음)

function greet(): void {
  console.log("Hello!");
}

greet(); // Output: Hello!
반응형
Comments