본문 바로가기

TypeScript

타입의 호환성 - 제네릭

모든 타입 변수가 어떤 타입인지 알려진 경우


    interface NotEmpty<T> {
      data: T;
    }

    let x: NotEmpty<number>;
    let y: NotEmpty<string>;

어떤 타입인지 알려지지 않은 타입 변수가 있는 경우

    const identity = function<T>(x: T): T {
      // ...
    };

    const reverse = function<U>(y: U): U {
      // ...
    };

이 때, identity와 reverse 함수의 타입에는 타입 변수가 남아 있다. 이럴 때에는 **아직 남아 있는 타입 변수를 모두 `any` 타입으로 대체하고 호환성을 판단**한다. 예를 들어 아래와 같은 할당은 허용된다.

'TypeScript' 카테고리의 다른 글

타입의 호환성 - 열거형  (0) 2019.10.30
타입의 호환성 - 클래스  (0) 2019.10.30
타입의 호환성 - 함수 타입  (0) 2019.10.30
타입의 호환성 - 객체 타입  (0) 2019.10.30
타입의 호환성 - 기본 타입  (0) 2019.10.30