16 lines
391 B
TypeScript
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))
|
|
|