Data Types
Union Narrowing
Union types allow a value to hold one of several types, and checks narrow the current type.
Union Narrowing
union.ts
let input: number | string = ;
let value: number;
if (typeof input === "string") {
value = Number(input);
console.log(`parsed ${input}`);
} else {
value = input;
console.log(`used number ${input}`);
}
const doubled: number = value * 2;
console.log(`doubled=${doubled}`);
let input: number | string = ;
let value: number;
if (typeof input === "string") {
value = Number(input);
console.log(`parsed ${input}`);
} else {
value = input;
console.log(`used number ${input}`);
}
const doubled: number = value * 2;
console.log(`doubled=${doubled}`);
let input: number | string = ;
let value: number;
if (typeof input === "string") {
value = Number(input);
console.log(`parsed ${input}`);
} else {
value = input;
console.log(`used number ${input}`);
}
const doubled: number = value * 2;
console.log(`doubled=${doubled}`);
union type
A union such as `number | string` accepts either type until a check narrows the value.