Type Guards and Narrowing
Array Guard
Array.isArray separates a single value from a list before list operations run.
Array Guard
array_guard.ts
function summarizeTags(tags: string | string[]): string {
if (Array.isArray(tags)) {
return `many:${tags.join("+")}`;
}
return `one:${tags}`;
}
const multiple: boolean = ;
const tags: string | string[] = multiple ? ["trace", "replay"] : "trace";
const summary: string = summarizeTags(tags);
console.log(summary);
function summarizeTags(tags: string | string[]): string {
if (Array.isArray(tags)) {
return `many:${tags.join("+")}`;
}
return `one:${tags}`;
}
const multiple: boolean = ;
const tags: string | string[] = multiple ? ["trace", "replay"] : "trace";
const summary: string = summarizeTags(tags);
console.log(summary);
array guard
`Array.isArray(value)` narrows a union to an array so methods such as `join` are available.