type-plus
Version:
Provides additional types for TypeScript.
13 lines (11 loc) • 401 B
text/typescript
import type { NumericStruct } from './numeric_struct.js'
export type Multiply<A extends number | bigint, B extends number | bigint, Fail = never> = [
NumericStruct.FromNumeric<A, Fail>,
NumericStruct.FromNumeric<B, Fail>
] extends [infer MA, infer MB]
? MA extends NumericStruct
? MB extends NumericStruct
? NumericStruct.ToNumeric<NumericStruct.Multiply<MA, MB>>
: Fail
: Fail
: never