TypeScript·
XXX - Equal
- #TypeScript
- #Type Challenges
WARNING
이 문항은 Type Challenges에 존재하지 않는 문항입니다.
질문
두 타입이 완전히 동일한지 비교하는 Equal<A, B> 타입을 구현하세요.
예시:
1type A = Equal<1, 1> // true2type B = Equal<1, number> // false3type C = Equal<true, boolean> // false4type D = Equal<{ a: number }, { a: number }> // true5type E = Equal<{ a: number }, { readonly a: number }> // false67
선행 지식
-
extends는 할당(대입) 가능성을 검사한다.1any extends string ? true : false // true2string extends any ? true : false // true흔히 TypeScript의 타입 시스템은 집합에 비유되곤 하지만, (*에 대하여)
any라는 특수 케이스 때문에 완벽히 동일하지는 않다. 따라서A extends B가true이고B extends A가true라고 이 둘이 동일하다는 동등성을 보장하지는 못한다.