Languages

Keyboard

Tagged Union

Exhaustive handling of a discriminated type.

Difficulty: Intermediate · 15 Lines · License: public-domain

Time Left5:00
Score0
Auto PlayerVectorBlade851
type Shape =
  | { kind: 'circle'; radius: number }
  | { kind: 'square'; side: number }
  | { kind: 'rectangle'; width: number; height: number };
function area(shape: Shape): number {
  switch (shape.kind) {
    case 'circle':
      return Math.PI * shape.radius ** 2;
Time0:00
Speed (WPM)0.0
Accuracy100.0%
Mistakes0

Live Keyboard

Next Key: T | Last Pressed: -

Progress: 0.0%
`
1
2
3
4
5
6
7
8
9
0
-
=
Q
W
E
R
T
Y
U
I
O
P
[
]
A
S
D
F
G
H
J
K
L
;
'
Z
X
C
V
B
N
M
,
.
/
Space

Timed Test Leaderboard

No results yet. Be the first to set a score.