---
title: "ManagedTypedValue · types"
url: https://developers.dagio.ai/fr/reference/types-managed-typed-value/
---

# ManagedTypedValue · types

   
                                  
                                                                           
                                           
                  
           
          
   

Les types ci-dessous définissent les objets nommés et leurs relations. Les propriétés héritées sont incluses dans les tableaux. Les types dérivés d’un schéma renvoient à sa structure; une déclaration TypeScript ne remplace pas les contrôles sémantiques du compilateur.

## ManagedIntegerValueSchema

Exact integers have their own declared bounds, not an implicit decimal scale or unsafe JSON number.

| Champ | Options / valeurs attendues | Description |
| --- | --- | --- |
| `kind` | `"integer"` | **Requis.** Sélectionne la variante et les propriétés admises dans cette branche. |
| `minimum` | `string` | **Requis.** Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet. |
| `maximum` | `string` | **Requis.** Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet. |
| `unit` | `{ kind: "dimensionless"; } \| { kind: "unit"; key: string; } \| { kind: "currency"; key: string; }` | **Requis.** Définit « unit » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |

```typescript
export interface ManagedIntegerValueSchema {
  readonly kind: 'integer';
  readonly minimum: string;
  readonly maximum: string;
  readonly unit: ManagedExactDataUnit;
}
```

## ManagedApproximateRealValueSchema

Approximation is explicitly binary64; tolerances are comparison policy, never input rounding.

| Champ | Options / valeurs attendues | Description |
| --- | --- | --- |
| `kind` | `"real"` | **Requis.** Sélectionne la variante et les propriétés admises dans cette branche. |
| `representation` | `"binary64"` | **Requis.** Définit « representation » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `precisionBits` | `53` | **Requis.** Définit « precision Bits » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `minimum` | `number` | **Requis.** Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet. |
| `maximum` | `number` | **Requis.** Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet. |
| `tolerance` | `{ readonly absolute: number; readonly relative: number; }` | **Requis.** Définit « tolerance » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `unit` | `{ kind: "dimensionless"; } \| { kind: "unit"; key: string; }` | **Requis.** Définit « unit » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |

```typescript
export interface ManagedApproximateRealValueSchema {
  readonly kind: 'real';
  readonly representation: 'binary64';
  readonly precisionBits: 53;
  readonly minimum: number;
  readonly maximum: number;
  readonly tolerance: { readonly absolute: number; readonly relative: number };
  readonly unit: Exclude<ManagedExactDataUnit, { kind: 'currency' }>;
}
```

## ManagedChoiceValueSchema

Labels have stable authored language keys; the selected label locale must exist for every choice.

| Champ | Options / valeurs attendues | Description |
| --- | --- | --- |
| `kind` | `"choice"` | **Requis.** Sélectionne la variante et les propriétés admises dans cette branche. |
| `labelLocale` | `string` | **Requis.** Définit « label Locale » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `choices` | `readonly { readonly key: string; readonly labels: Readonly<Record<string, string>>; }[]` | **Requis.** Définit « choices » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |

```typescript
export interface ManagedChoiceValueSchema {
  readonly kind: 'choice';
  readonly labelLocale: string;
  readonly choices: readonly { readonly key: string; readonly labels: Readonly<Record<string, string>> }[];
}
```

## ManagedTypedValueSchema

Closed value trees cannot declare identities, rights, Links, content kinds or arbitrary JSON branches.

```typescript
export type ManagedTypedValueSchema =
  | { readonly kind: 'text'; readonly minimumLength: number; readonly maximumLength: number }
  | { readonly kind: 'boolean' }
  | ManagedIntegerValueSchema
  | ManagedApproximateRealValueSchema
  | ManagedChoiceValueSchema
  | { readonly kind: 'decimal'; readonly precision: number; readonly scale: number; readonly unit: ManagedExactDataUnit;
      readonly minimum?: string | undefined; readonly maximum?: string | undefined }
  | { readonly kind: 'object'; readonly properties: readonly {
      readonly key: string; readonly required: boolean; readonly nullable: boolean;
      readonly schema: ManagedTypedValueSchema;
    }[] }
  | { readonly kind: 'list'; readonly minimumItems: number; readonly maximumItems: number;
      readonly itemsNullable: boolean; readonly items: ManagedTypedValueSchema };
```

```typescript
type ManagedTypedValueSchema = ManagedIntegerValueSchema | ManagedApproximateRealValueSchema | ManagedChoiceValueSchema | { readonly kind: "text"; readonly minimumLength: number; readonly maximumLength: number; } | { readonly kind: "boolean"; } | { readonly kind: "decimal"; readonly precision: number; readonly scale: number; readonly unit: ManagedExactDataUnit; readonly minimum?: string | undefined; readonly maximum?: string | undefined; } | { readonly kind: "object"; readonly properties: readonly { readonly key: string; readonly required: boolean; readonly nullable: boolean; readonly schema: ManagedTypedValueSchema; }[]; } | { readonly kind: "list"; readonly minimumItems: number; readonly maximumItems: number; readonly itemsNullable: boolean; readonly items: ManagedTypedValueSchema; };
```

## ManagedTypedValue

Canonical JSON primitives and closed composites retain null, empty objects/lists, false and zero distinctly.

```typescript
export type ManagedTypedValue = string | number | boolean | null | readonly ManagedTypedValue[] | { readonly [key: string]: ManagedTypedValue };
```

```typescript
type ManagedTypedValue = string | number | boolean | readonly ManagedTypedValue[] | { readonly [key: string]: ManagedTypedValue; } | null;
```

## ManagedTypedFieldV2

A Field's presence and outer repeatability remain separate from its typed value's own list schema.

| Champ | Options / valeurs attendues | Description |
| --- | --- | --- |
| `contract` | `"ManagedTypedField@2"` | **Requis.** Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée. |
| `key` | `string` | **Requis.** Identifiant sémantique stable utilisé par les références; le modifier change l’identité. |
| `type` | `"object" \| "choice" \| "integer" \| "real" \| "list"` | **Requis.** Définit « type » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `required` | `boolean` | **Requis.** Indique si cette déclaration exige une valeur. |
| `repeatable` | `boolean` | **Requis.** Indique si plusieurs valeurs ou instances sont admises. |
| `nullable` | `boolean` | **Requis.** Définit « nullable » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `schema` | `ManagedIntegerValueSchema \| ManagedApproximateRealValueSchema \| ManagedChoiceValueSchema \| { readonly kind: "object"; readonly properties: readonly { readonly key: string; readonly required: boolean; readonly nullable: boolean; readonly schema: ManagedTypedValueSchema; }[]; } \| { readonly kind: "list"; readonly minimumItems: number; readonly maximumItems: number; readonly itemsNullable: boolean; readonly items: ManagedTypedValueSchema; }` | **Requis.** Définit « schema » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `default` | `ManagedTypedValue \| undefined` | Facultatif. Valeur initiale conforme au type déclaré; ne remplace pas une valeur déjà enregistrée. |

```typescript
export interface ManagedTypedFieldV2 {
  readonly contract: 'ManagedTypedField@2';
  readonly key: string;
  readonly type: 'integer' | 'real' | 'choice' | 'object' | 'list';
  readonly required: boolean;
  readonly repeatable: boolean;
  readonly nullable: boolean;
  readonly schema: Exclude<ManagedTypedValueSchema, { kind: 'text' | 'boolean' | 'decimal' }>;
  readonly default?: ManagedTypedValue | undefined;
}
```

[Toutes les références](https://developers.dagio.ai/fr/reference/)

<!-- surface-examples:start -->

## Exemples appliqués : Texte requis et choix métier

Entreprise utilise une saisie texte obligatoire; État réutilise une liste de valeurs déclarées.

### Configuration

Fragment à placer dans `forms[].fields[]`. [Propriétés et valeurs admises](https://developers.dagio.ai/fr/reference/workspace-model-foundation/).

```json
{
  "contract": "WorkspaceFormControl@2",
  "repeatable": false,
  "key": "company",
  "label": "Entreprise",
  "input": "text",
  "binding": {
    "kind": "field",
    "fieldKey": "company"
  },
  "required": true,
  "ruleKeys": [],
  "options": []
}
```

### Variante et raccordement

Fragment à placer dans `forms[].fields[]`. [Propriétés et valeurs admises](https://developers.dagio.ai/fr/reference/workspace-model-foundation/).

```json
{
  "contract": "WorkspaceFormControl@2",
  "repeatable": false,
  "key": "status",
  "label": "État",
  "input": "choice",
  "binding": {
    "kind": "field",
    "fieldKey": "status"
  },
  "required": true,
  "ruleKeys": [],
  "options": [
    "prospect",
    "active"
  ]
}
```

### Exemple de disposition UI

La disposition illustrative ci-dessous situe cette configuration dans l’app Clients/Soumissions. Chaque fragment s’insère à l’emplacement indiqué; ses références aux Fields, Queries et Actions correspondent aux déclarations du Model.

1. Identité du client
2. Notes et suivi
3. Paramètres
4. Soumissions liées

<!-- surface-examples:end -->
