Vés al contingut
i18n-error-base
Català
Esc
↑↓navega↵obre⌘Jprevisualitza
En aquesta pàgina

Referència de l'API

Especificació de I18nErrorBase, setErrorMessage i els tipus relacionats.

I18nErrorBase

Classe base per heretar Error. message es resol segons lang.

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

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

Paràmetres de tipus

Prop Type Default Description
TMeta ErrorMeta | undefined ErrorMeta | undefined El tipus de meta. Especifiqueu undefined quan no la utilitzeu.

Propietats estàtiques

Prop Type Default Description
prefix? string undefined Es concatena al principi del missatge resolt.

Propietats d’instància

Prop Type Description
meta TMeta Informació auxiliar del constructor. Es pot llegir i escriure.
message string Es resol segons lang. És enumerable.
cause unknown La causa de ErrorOptions. És una propietat estàndard de Error.

Constructor

Quan TMeta no inclou undefined, meta és obligatori.

new MyError(meta, message, options?)

Quan TMeta és undefined, meta es pot ometre.

new MyError(message, options?)
new MyError(meta, message, options?)
Paràmetre Tipus Descripció
meta TMeta Informació auxiliar per generar el missatge.
message string | MessageFactory<TMeta> Missatge per defecte per als idiomes sense registre. Les funcions reben meta.
options ErrorOptions Opcions compatibles amb el segon argument de Error (com { cause }).

Ordre de resolució

  1. Obté lang de getGlobalConfig() ("en" quan no està configurat)
  2. Executa amb meta la funció registrada per a aquella classe i aquell idioma
  3. Si no està registrat, utilitza el missatge per defecte
  4. Si static prefix està configurat, el concatena al principi

setErrorMessage

Registra funcions de creació de missatges per idioma.

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

setErrorMessage(MyError, (meta) => `...: ${meta.code}`, "ja");
Paràmetre Tipus Descripció
reference I18nErrorBaseConstructor Una classe que hereta I18nErrorBase. Les classes que no l’hereten provoquen un error de tipus.
message string | (meta) => string El missatge a registrar. meta s’infereix des de la classe de destinació.
lang string | Iterable<string> L’idioma de destinació. Un sol codi o un objecte iterable (com una matriu).

El nou registre de la mateixa classe i idioma sobreescriu.

Tipus

ErrorMeta

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

La restricció per defecte de TMeta. Un objecte de només lectura amb propietats arbitràries.

ErrorOptions

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

Un tipus derivat del segon argument de Error. Podeu passar cause.

MessageFactory<TMeta>

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

Una funció que genera un missatge des de meta. S’utilitza tant per al missatge per defecte com per als registrats.

I18nErrorBaseParams<TMeta>

Sobrecàrregues dels arguments del constructor.

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];

Només ometeu meta quan TMeta és undefined.

I18nErrorBaseConstructor

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

El tipus del primer argument de setErrorMessage.

Notes

  • El lang per defecte és "en". Canvieu-lo explícitament amb setGlobalConfig({ lang })
  • No hi ha normalització de codis d’idioma ni cadena de reserva (p. ex. en-US a en). Els idiomes sense registre utilitzen el missatge per defecte

Aquesta pàgina t'ha estat útil?