Vai al contenuto
i18n-error-base
Italiano
Esc
↑↓naviga↵apri⌘Janteprima
In questa pagina

Riferimento API

Specifiche di I18nErrorBase, setErrorMessage e dei tipi correlati.

I18nErrorBase

Classe base per estendere Error. message è risolto in base a lang.

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

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

Parametri di tipo

Prop Type Default Description
TMeta ErrorMeta | undefined ErrorMeta | undefined Il tipo di meta. Se non usato, specificare undefined.

Proprietà statiche

Prop Type Default Description
prefix? string undefined Anteposto all’inizio del messaggio risolto.

Proprietà di istanza

Prop Type Description
meta TMeta Informazioni aggiuntive del costruttore. Leggibili e scrivibili.
message string Risolto in base a lang. Enumerabile.
cause unknown Causa passata tramite ErrorOptions. Proprietà standard di Error.

Costruttore

Quando TMeta non include undefined, meta è obbligatorio.

new MyError(meta, message, options?)

Quando TMeta è undefined, meta può essere omesso.

new MyError(message, options?)
new MyError(meta, message, options?)
Parametro Tipo Descrizione
meta TMeta Informazioni aggiuntive per generare i messaggi.
message string | MessageFactory<TMeta> Messaggio predefinito per le lingue senza registrazione. Le funzioni ricevono meta.
options ErrorOptions Opzioni compatibili con il secondo argomento di Error (come { cause }).

Ordine di risoluzione

  1. Ottiene lang da getGlobalConfig() (se non impostato, "en").
  2. Esegue con meta la funzione registrata per quella classe e quella lingua.
  3. Se non registrata, usa il messaggio predefinito.
  4. Se esiste uno static prefix, lo antepone.

setErrorMessage

Registra le funzioni di creazione dei messaggi per lingua.

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

setErrorMessage(MyError, (meta) => `...: ${meta.code}`, "ja");
Parametro Tipo Descrizione
reference I18nErrorBaseConstructor La classe che estende I18nErrorBase. Le altre causano un errore di tipo.
message string | (meta) => string Il messaggio da registrare. Il tipo di meta è inferito dalla classe di destinazione.
lang string | Iterable<string> La lingua di destinazione. Un singolo codice o un iterabile (come un array).

La registrazione ripetuta per la stessa classe e lingua sovrascrive.

Tipi

ErrorMeta

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

Il vincolo predefinito di TMeta. Oggetto di sola lettura con proprietà arbitrarie.

ErrorOptions

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

Tipo derivato dal secondo argomento di Error. Permette di passare cause.

MessageFactory<TMeta>

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

Funzione che genera un messaggio da meta. Usata sia per il predefinito sia per i registrati.

I18nErrorBaseParams<TMeta>

Overload degli argomenti del costruttore.

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 forma abbreviata senza meta è consentita solo quando TMeta è undefined.

I18nErrorBaseConstructor

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

Il tipo del primo argomento di setErrorMessage.

Note aggiuntive

  • Il valore predefinito di lang è "en". Cambiarlo con setGlobalConfig({ lang }).
  • Nessuna normalizzazione dei codici né catena di ripiego (ad es. en-US → en). Le lingue non registrate usano il messaggio predefinito.

Questa pagina ti è stata utile?