하얀 코딩

[TypeScript - 4] Object types (객체 타입) - object, array, function 본문

TypeScript

[TypeScript - 4] Object types (객체 타입) - object, array, function

whitecoding 2023. 6. 6. 17:31

object

타입스크립트에서 object 타입은 비원시적인 값(함수, 배열, 객체 등)을 나타냅니다.

Primitive types (원시 타입) 아닌 나머지 값을 의미합니다.

let obj: object;

obj = { name: 'John Doe' };  // OK
obj = [1, 2, 3];  // OK
obj = () => console.log('Hello');  // OK

obj = 42;  // Error: Type '42' is not assignable to type 'object'.
obj = 'Hello';  // Error: Type '"Hello"' is not assignable to type 'object'.
obj = true;  // Error: Type 'true' is not assignable to type 'object'.

그러나 object 타입은 그 구조에 대해 많은 것을 말해주지 않습니다.

 즉, 어떤 속성이 있고, 어떤 타입의 값이 해당 속성에 할당되어야 하는지에 대한 정보는 제공하지 않습니다.


array

타입스크립트에서 배열 타입을 지정하는 데는 두 가지 방법이 있습니다.

 

첫 번째 방법은 요소의 타입 뒤에 대괄호([])를 사용하는 방법입니다. 

let list: [] = ["a", null, 3];
let list: number[] = [1, 2, 3];
let list: string[] = ["1", "abc", "qwer"];

두 번째 방법은 일반 배열 타입인 Array를 사용하고 꺾쇠 괄호(<>) 안에 요소의 타입을 지정하는 것입니다.

let list: Array<number> = [1, 2, 3];
let list: Array<string> = ["a", "b", "c"];

function

타입스크립트에서 함수는 매개변수의 타입과 반환 타입을 지정할 수 있는 강력한 기능을 제공합니다.

 

1. 함수 선언: 함수의 매개변수 타입과 반환 타입을 지정할 수 있습니다.

function add(x: number, y: number): number {
  return x + y;
}

let sum = add(1, 2);  // OK
let mySum = add('1', '2');  // Error

2. 함수 표현식과 화살표 함수: 매개변수 타입과 반환 타입을 지정할 수 있습니다.

let multiply: (x: number, y: number) => number = function (x, y) { return x * y; };

let product = multiply(2, 3);  // OK
let myProduct = multiply('2', '3');  // Error

3. 함수 타입: 함수의 타입을 인터페이스나 타입 별칭을 통해 정의할 수 있습니다.

interface AddFunc {
  (x: number, y: number): number;
}

let add: AddFunc = function (x, y) { return x + y; };