I want to make a number-like type N, such that the N can be either always number or always bigint. But it seems not possible to achieve with current TypeScript 4.5.3.
In the context of a type for property of an interface, extends cannot be used. The &(intersection) operator has same effect.
There is not requirement in TypeScript for an exact match between the implementing class field and the interface field.(origin)
@2021-12-14
Read Type theory: academic study of a formal system in which every term has a "type". Natural language is has a simpler(more concrete, less abstract) grammar than formal language.