Skip to content

Commit 823d13e

Browse files
ranidamjosdejong
andauthored
fix: #3469 add ResultSet interface and improve isResultSet typing (#3481)
Co-authored-by: Jos de Jong <[email protected]>
1 parent 9431418 commit 823d13e

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

test/typescript-tests/testTypes.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ import {
4848
SLUDecomposition,
4949
SymbolNode,
5050
Unit,
51+
evaluate,
52+
isResultSet,
5153
UnitPrefix
5254
} from 'mathjs'
5355

@@ -171,6 +173,12 @@ Bignumbers examples
171173
)
172174
}
173175
}
176+
const result = evaluate('1 + 1; 2 + 2;') // multi-expression input
177+
178+
if (isResultSet(result)) {
179+
const entries = result.valueOf() // ✅ should be typed as unknown[]
180+
const _last = entries.slice(-1)[0] // ✅ access last result safely
181+
}
174182

175183
/*
176184
Arithmetic function examples

types/index.d.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3518,7 +3518,7 @@ export interface MathJsInstance extends MathJsFactory {
35183518

35193519
isBoolean(x: unknown): x is boolean
35203520

3521-
isResultSet(x: unknown): boolean
3521+
isResultSet(x: unknown): x is ResultSet
35223522

35233523
isHelp(x: unknown): x is Help
35243524

@@ -4319,6 +4319,14 @@ export interface EvalFunction {
43194319
evaluate(scope?: any): any
43204320
}
43214321

4322+
// ResultSet type and helper
4323+
export interface ResultSet {
4324+
entries: unknown[]
4325+
valueOf(): unknown[]
4326+
toString(): string
4327+
toJSON(): MathJSON
4328+
}
4329+
43224330
export interface MathNode {
43234331
isNode: true
43244332
comment: string

0 commit comments

Comments
 (0)