# DetailedCellError

## Constructors

### constructor 

\+ **new DetailedCellError**(`error`: [CellError](cellerror.md), `value`: string, `address?`: undefined | string): *[DetailedCellError](detailedcellerror.md)*

*Defined in [src/CellValue.ts:56](https://github.com/handsontable/hyperformula/blob/e2ced02/src/CellValue.ts#L56)*

**Parameters:**

Name | Type |
------ | ------ |
`error` | [CellError](cellerror.md) |
`value` | string |
`address?` | undefined &#124; string |

**Returns:** *[DetailedCellError](detailedcellerror.md)*

## Properties

### address

• **address**? : *undefined | string*

*Defined in [src/CellValue.ts:61](https://github.com/handsontable/hyperformula/blob/e2ced02/src/CellValue.ts#L61)*

___

### argumentIndex

• **argumentIndex**? : *undefined | number*

*Defined in [src/CellValue.ts:56](https://github.com/handsontable/hyperformula/blob/e2ced02/src/CellValue.ts#L56)*

The zero-based index of the argument that was rejected, when `originFunction` names a
function whose own argument coercion produced this error.

`undefined` whenever the error was not a coercion failure on one of the origin
function's own arguments — including when it came from a nested call (its own
`originFunction` already claimed it), when it was propagated from elsewhere, or when
the argument was a reference that could not be resolved, which the reference itself
reports. When a function is applied across an array, an element that fails coercion
carries the index alongside the function's own name, like any other coercion failure.

___

### hasMessage

• **hasMessage**: *boolean*

*Defined in [src/CellValue.ts:25](https://github.com/handsontable/hyperformula/blob/e2ced02/src/CellValue.ts#L25)*

Whether the underlying error carried a message at all.

`message` collapses "no message" and "an empty message" into `''`; this flag
keeps them apart for consumers that need to know whether a cause was stated.
Errors the engine raises while evaluating a formula always carry a message. A
`false` here means nobody stated a cause: a custom function that did not supply
one, or an error value a user typed straight into a cell, where the cause is the
typing itself and `originFunction` says so.

___

### message

• **message**: *string*

*Defined in [src/CellValue.ts:13](https://github.com/handsontable/hyperformula/blob/e2ced02/src/CellValue.ts#L13)*

___

### originFunction

• **originFunction**? : *undefined | string*

*Defined in [src/CellValue.ts:43](https://github.com/handsontable/hyperformula/blob/e2ced02/src/CellValue.ts#L43)*

What produced this error.

Usually the function or operator that rejected a value, e.g. `'SUM'` or `'divide'`.
Errors that exist before any function reads them name what built them instead:
`'reference'` for a reference that cannot be resolved, `'removed reference'` for one
destroyed by removing rows or columns, `'parser'` for a formula that could not be
parsed, `'user input'` for an error value typed into a cell, and `'literal'` for one
written into a formula.

First occurrence wins, so a function that only read the error never replaces that:
`=SUM(SQRT(-1))` reports `'SQRT'`, and `=SUM(A2:A99999999999)` reports `'reference'`.

`undefined` when nothing produced the error in this sense — `#SPILL!` and `#CYCLE!`
arise from the layout of a sheet rather than from evaluating a value.

___

### type

• **type**: *[ErrorType](hyperformulans.md#static-errortype)*

*Defined in [src/CellValue.ts:12](https://github.com/handsontable/hyperformula/blob/e2ced02/src/CellValue.ts#L12)*

___

### value

• **value**: *string*

*Defined in [src/CellValue.ts:60](https://github.com/handsontable/hyperformula/blob/e2ced02/src/CellValue.ts#L60)*

## Methods

### toString 

▸ **toString**(): *string*

*Defined in [src/CellValue.ts:70](https://github.com/handsontable/hyperformula/blob/e2ced02/src/CellValue.ts#L70)*

**Returns:** *string*

___

### valueOf 

▸ **valueOf**(): *string*

*Defined in [src/CellValue.ts:74](https://github.com/handsontable/hyperformula/blob/e2ced02/src/CellValue.ts#L74)*

**Returns:** *string*