[typescript] 타입 추론과 타입 호환성

이번에는 TypeScript에서 타입 추론과 타입 호환성에 대해 알아보겠습니다.

1. 타입 추론

TypeScript는 변수나 함수의 반환값과 같은 것들을 정의할 때 명시적으로 타입을 지정하지 않아도 타입을 추론합니다. 예를 들어, 다음과 같이 변수를 선언할 때 초기값을 할당하면 TypeScript는 그 값의 타입을 기반으로 해당 변수의 타입을 추론합니다.

let x = 3; // x는 number 타입으로 추론됨

이러한 타입 추론은 코드를 간결하게 작성할 수 있도록 도와주며, 코드의 가독성을 높여줍니다.

2. 타입 호환성

TypeScript에서는 타입 호환성이라는 개념을 가지고 있습니다. 타입 호환성은 어떤 타입이 다른 타입과 호환 가능한지에 대한 규칙을 정의합니다.

간단히 말해서, 만약 타입 S가 타입 T에 할당 가능하다면(S is assignable to T) 타입 S는 타입 T와 호환 가능하다고 말합니다.

예를 들어, 다음과 같이 인터페이스 A와 B가 있을 때:

interface A {
    x: number;
    y: number;
}

interface B {
    x: number;
}

인터페이스 B는 인터페이스 A에 할당 가능합니다. 왜냐하면 B는 A의 모든 필드를 포함하고 있기 때문입니다.

let a: A = { x: 1, y: 2 };
let b: B = a; // 이는 가능합니다.

TypeScript의 타입 호환성 규칙은 코드를 작성할 때 타입 간의 관계를 이해하고 일관된 타입 사용을 촉진하는 데 도움을 줍니다.

3. 결론

이번 글에서는 TypeScript에서의 타입 추론과 타입 호환성에 대해 알아보았습니다. 타입 추론은 명시적으로 타입을 지정하지 않아도 TypeScript가 값을 기반으로 타입을 추론하는 기능을 말하며, 타입 호환성은 두 개의 타입 간의 호환 가능성에 대한 규칙을 말합니다.


참고 문헌:

다음 포스트에서는 구조적 타이핑과 너비와 깊이의 차이에 대해 알아보겠습니다.