# Scale

Defined in: [src/expressions/scale.ts:12](https://github.com/jacobgoldfarb/Jevlish/blob/83ccd8c0be5f41962c805f7d42ddf1b1f048de89/src/expressions/scale.ts#L12)

A degree, not a probability. A scale describes ordered situations and the model returns a position along them. Kept distinct from predicates on purpose: “how much does this disrupt work” is not “is this disruptive”.

## Type Parameters

| Type Parameter | Default type |
| -------------- | ------------ |
| `T`            | `unknown`    |

## Constructors

### Constructor

> **new Scale**<`T`>(`question`, `levels`, `name?`): `Scale`<`T`>

Defined in: [src/expressions/scale.ts:16](https://github.com/jacobgoldfarb/Jevlish/blob/83ccd8c0be5f41962c805f7d42ddf1b1f048de89/src/expressions/scale.ts#L16)

#### Parameters

| Parameter  | Type                                                                  |
| ---------- | --------------------------------------------------------------------- |
| `question` | `string`                                                              |
| `levels`   | readonly [`EntryType`](/Jevlish/reference/type-aliases/entrytype/)\[] |
| `name?`    | `string`                                                              |

#### Returns

`Scale`<`T`>

## Properties

| Property       | Modifier   | Type                                                                  | Defined in                                                                                                                                         |
| -------------- | ---------- | --------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| []()`question` | `readonly` | `string`                                                              | [src/expressions/scale.ts:17](https://github.com/jacobgoldfarb/Jevlish/blob/83ccd8c0be5f41962c805f7d42ddf1b1f048de89/src/expressions/scale.ts#L17) |
| []()`levels`   | `readonly` | readonly [`EntryType`](/Jevlish/reference/type-aliases/entrytype/)\[] | [src/expressions/scale.ts:18](https://github.com/jacobgoldfarb/Jevlish/blob/83ccd8c0be5f41962c805f7d42ddf1b1f048de89/src/expressions/scale.ts#L18) |
| []()`name?`    | `readonly` | `string`                                                              | [src/expressions/scale.ts:19](https://github.com/jacobgoldfarb/Jevlish/blob/83ccd8c0be5f41962c805f7d42ddf1b1f048de89/src/expressions/scale.ts#L19) |

## Accessors

### top

#### Get Signature

> **get** **top**(): `number`

Defined in: [src/expressions/scale.ts:28](https://github.com/jacobgoldfarb/Jevlish/blob/83ccd8c0be5f41962c805f7d42ddf1b1f048de89/src/expressions/scale.ts#L28)

Highest level index; scores run from 0 to this.

##### Returns

`number`

## Methods

### named()

> **named**(`name`): `Scale`<`T`>

Defined in: [src/expressions/scale.ts:33](https://github.com/jacobgoldfarb/Jevlish/blob/83ccd8c0be5f41962c805f7d42ddf1b1f048de89/src/expressions/scale.ts#L33)

Give the scale a name for traces and plans.

#### Parameters

| Parameter | Type     |
| --------- | -------- |
| `name`    | `string` |

#### Returns

`Scale`<`T`>

***

### toQuestion()

> **toQuestion**(): `ScoreQuestion`

Defined in: [src/expressions/scale.ts:38](https://github.com/jacobgoldfarb/Jevlish/blob/83ccd8c0be5f41962c805f7d42ddf1b1f048de89/src/expressions/scale.ts#L38)

The Score question this scale compiles to.

#### Returns

`ScoreQuestion`

***

### toJSON()

> **toJSON**(): `unknown`

Defined in: [src/expressions/scale.ts:43](https://github.com/jacobgoldfarb/Jevlish/blob/83ccd8c0be5f41962c805f7d42ddf1b1f048de89/src/expressions/scale.ts#L43)

Serializable form: name, question, and levels.

#### Returns

`unknown`