feat: Add return typing strategies and implement sqrt with them #26

Merged
glen merged 7 commits from return_typing into main 2025-04-28 16:29:34 +00:00
2 changed files with 3 additions and 1 deletions
Showing only changes of commit 87f5a0ed2a - Show all commits

View file

@ -51,6 +51,7 @@ describe('complex type operations', () => {
assert(math.equal(ccis(Math.PI), cplx(-1)))
math.config.returnTyping = ReturnTyping.free
assert.strictEqual(math.cis.resolve(NumberT), cis)
assert.strictEqual(math.cis.resolve(NumberT, ReturnTyping.full), ccis)
assert.strictEqual(math.cis(2*Math.PI), 1)
})
})

View file

@ -155,7 +155,8 @@ export class TypeDispatcher {
const types = args.map(thisTypeOf)
return this.resolve(key, types)(...args)
}
standard.resolve = (types) => this.resolve(key, types)
standard.resolve =
(types, strategy) => this.resolve(key, types, strategy)
standard.isDispatcher = true
Object.defineProperty(this, key, {
enumerable: true,