Jesse Hallett <jesse@sitr.us>
Sr Software Engineer at Originate, Inc.
TypeScript, NYC - April 17, 2019
function matchBoolean(x: boolean): string { switch(x) { case true: return "got true" case false: return "got false" default: return "what did we get?" }}
.
function matchBoolean(x: boolean): string { switch(x) { case true: return "got true" case false: return "got false" default: x.someProp // ✘ 'someProp' does not exist on type 'never'. return "what did we get?" }}
.
function timeout(ms: number): Promise<never> { return new Promise((_, reject) => setTimeout(() => reject(new Error("Timeout elapsed")), ms) )}
async function fetchPriceWithTimeout( tickerSymbol: string): Promise<number> { const stock = await Promise.race([ fetchStock(tickerSymbol), // `Promise<{ price: number }>` timeout(3000) // `Promise<never>` ]) return stock.price // { price: number } | never // => { price: number }}