# Type Alias: ScanResult

[Mobile Document Scanner API Reference](../index.md) / ScanResult

# Type Alias: ScanResult

> **ScanResult** = [`SuccessfulScan`](../interfaces/SuccessfulScan.md) \| \{ `status`: `"cancelled"`; \} \| \{ `error`: [`ScannerError`](ScannerError.md); `status`: `"failed"`; \}

Defined in: [src/results.ts:230](https://github.com/Dynamsoft/document-scanner-javascript/blob/main/src/results.ts#L230)

The value that [scan()](../classes/DocumentScanner.md#scan) resolves with. A cancelled
session drops every page in the document. A failed session keeps the pages, as
[finish()](../classes/DocumentScanner.md#finish) does. Thus a later `scan()` starts with
them. [reset()](../classes/DocumentScanner.md#reset) drops them. Only a major release adds
a status.
