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
- Obtient
langdepuisgetGlobalConfig()("en"si non défini). - Exécute avec
metala fonction enregistrée pour cette classe et cette langue. - Si non enregistré, utilise le message par défaut.
- Si
static prefixest 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
langest"en". Basculez-la avecsetGlobalConfig({ 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.