typomath/src/steps/three.ts

16 lines
391 B
TypeScript

import overload from '../util/overload.js'
const adder = overload([
(x: number, y: number) => {
if (typeof x === 'number' && typeof y === 'number') return x + y
throw new TypeError('Can only add numbers')
},
(x: string, y: string) => 'Yay' + x + y
] as const)
console.log(adder(1, 2))
console.log(adder('a', 'b'))
//@ts-expect-error
console.log(adder(3n, 4n))