June 2021
Intermediate to advanced
398 pages
9h 35m
English
The preceding two sections are all leading up to the very important question of what exactly TypeScript checks when it checks a type.
For example, is the following legal?
| | class Hat { |
| | constructor(private size: number) {} |
| | } |
| | |
| | class Shirt { |
| | constructor(private size: number) {} |
| | } |
| | |
| | let x: Hat; |
| | x = new Shirt() |
In this code we have two classes, Hat and Shirt, that are not related to each other but have the same set of properties, namely an attribute called size, which is a number. Given that setup, can you declare a value of type Hat and then assign it a value of type Shirt?
In many typed languages, this sequence would be an error because the Hat and Shirt classes have no common ancestor. In TypeScript, ...