Generic Comparison
This lesson explains the difference between comparing two generic types and two primitive types.
We'll cover the following
Generic and typeof
The generic code does not allow the use of typeof
on T, type new T
, or instanceof T
.
The reason is that the transpilation step removes all traces of type. TypeScript transpiles typeof
and instanceof
operations into JavaScript, and during that step, it erases types. The absence of type at runtime justifies the lack of generic type verification at runtime as well.
The Generic solution
To compare two generics, we need to keep in mind that the types are erased (removed) when TypeScript is transpiled to JavaScript. Thus, we need to create a custom generic array with a unique identifier (or many) for comparison. For example, we can add an id
field and have that value, not erased at runtime, be compared.
Get hands-on with 1200+ tech skills courses.