Aller au contenu
i18n-error-base
Français
Esc
↑↓naviguer↵ouvrir⌘Japerçu
Sur cette page

Référence API

Spécifications de I18nErrorBase, setErrorMessage et des types associés.

I18nErrorBase

Classe de base pour hériter de Error. message est résolu selon lang.

import { I18nErrorBase } from "i18n-error-base";

class MyError extends I18nErrorBase<{ code: string }> {}

Paramètres de type

Prop Type Default Description
TMeta ErrorMeta | undefined ErrorMeta | undefined Le type de meta. Spécifiez undefined si vous ne l’utilisez pas.

Propriétés statiques

Prop Type Default Description
prefix? string undefined Ajouté au début du message résolu.

Propriétés d’instance

Prop Type Description
meta TMeta Informations annexes du constructeur. Lisibles et inscriptibles.
message string Résolu selon lang. Énumérable.
cause unknown Cause passée via ErrorOptions. Propriété standard de Error.

Constructeur

Quand TMeta n’inclut pas undefined, meta est requis.

new MyError(meta, message, options?)

Quand TMeta vaut undefined, meta peut être omis.

new MyError(message, options?)
new MyError(meta, message, options?)
Paramètre Type Description
meta TMeta Informations annexes pour générer les messages.
message string | MessageFactory<TMeta> Message par défaut pour les langues sans enregistrement. Les fonctions reçoivent meta.
options ErrorOptions Options compatibles avec le 2e argument de Error (comme { cause }).

Ordre de résolution

  1. Obtient lang depuis getGlobalConfig() ("en" si non défini).
  2. Exécute avec meta la fonction enregistrée pour cette classe et cette langue.
  3. Si non enregistré, utilise le message par défaut.
  4. Si static prefix est défini, l’ajoute au début.

setErrorMessage

Enregistre des fonctions de création de message par langue.

import { setErrorMessage } from "i18n-error-base";

setErrorMessage(MyError, (meta) => `...: ${meta.code}`, "ja");
Paramètre Type Description
reference I18nErrorBaseConstructor Classe héritant de I18nErrorBase. Les classes qui n’en héritent pas provoquent une erreur de type.
message string | (meta) => string Message à enregistrer. Le type de meta est inféré depuis la classe cible.
lang string | Iterable<string> Langue cible. Un seul code ou un itérable (comme un tableau).

La réinscription d’une même classe et langue écrase l’entrée.

Types

ErrorMeta

type ErrorMeta = {
  readonly [prop: string]: unknown;
};

Contrainte par défaut de TMeta. Un objet en lecture seule aux propriétés arbitraires.

ErrorOptions

type ErrorOptions =
  ConstructorParameters<typeof Error> extends [
    message?: unknown,
    options?: (infer TOptions) | undefined,
  ]
    ? TOptions
    : { readonly cause?: unknown };

Type dérivé du 2e argument de Error. Vous pouvez passer cause.

MessageFactory<TMeta>

interface MessageFactory<TMeta extends ErrorMeta | undefined = ErrorMeta | undefined> {
  (meta: TMeta): string;
}

Fonction générant un message depuis meta. Utilisée pour les messages par défaut comme enregistrés.

I18nErrorBaseParams<TMeta>

Surcharges d’arguments du constructeur.

type I18nErrorBaseParams<TMeta extends ErrorMeta | undefined = ErrorMeta | undefined> =
  [TMeta] extends [undefined]
    ?
        | [message: string | MessageFactory<TMeta>, options?: ErrorOptions | undefined]
        | [meta: undefined, message: string | MessageFactory<TMeta>, options?: ErrorOptions | undefined]
    : [meta: TMeta, message: string | MessageFactory<TMeta>, options?: ErrorOptions | undefined];

La forme abrégée sans meta n’est autorisée que quand TMeta vaut undefined.

I18nErrorBaseConstructor

interface I18nErrorBaseConstructor {
  new (...args: any): I18nErrorBase;
}

Type du 1er argument de setErrorMessage.

Notes

  • La valeur par défaut de lang est "en". Basculez-la avec setGlobalConfig({ lang }).
  • Ni normalisation des codes de langue ni chaîne de repli (p. ex. en-US → en). Les langues non enregistrées donnent le message par défaut.

Cette page vous a-t-elle été utile ?