Sari la conținut
i18n-error-base
Română
Esc
↑↓navighează↵deschide⌘Jprevizualizează
Pe această pagină

Referință API

Specificațiile pentru I18nErrorBase, setErrorMessage și tipurile asociate.

I18nErrorBase

Clasă de bază pentru extinderea Error. message se rezolvă în funcție de lang.

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

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

Parametri de tip

Prop Type Default Description
TMeta ErrorMeta | undefined ErrorMeta | undefined Tipul meta. Specificați undefined când nu este folosit.

Proprietăți statice

Prop Type Default Description
prefix? string undefined Adăugat la începutul mesajului rezolvat.

Proprietăți de instanță

Prop Type Description
meta TMeta Datele auxiliare ale constructorului. Pot fi citite și scrise.
message string Rezolvat în funcție de lang. Enumerabil.
cause unknown Cauza din ErrorOptions. Proprietate standard a Error.

Constructor

Când TMeta nu include undefined, meta este obligatoriu.

new MyError(meta, message, options?)

Când TMeta este undefined, meta poate fi omis.

new MyError(message, options?)
new MyError(meta, message, options?)
Parametru Tip Descriere
meta TMeta Datele auxiliare pentru generarea mesajului.
message string | MessageFactory<TMeta> Mesajul implicit pentru limbile fără înregistrare. Funcțiile primesc meta.
options ErrorOptions Opțiuni compatibile cu al doilea argument al Error (cum ar fi { cause }).

Ordinea de rezolvare

  1. Obține lang din getGlobalConfig() ("en" când nu este setat)
  2. Execută funcția înregistrată pentru acea clasă și limbă, cu meta
  3. Când nu există înregistrare, folosește mesajul implicit
  4. Dacă static prefix este setat, îl adaugă la început

setErrorMessage

Înregistrează funcții de creare a mesajelor pentru fiecare limbă.

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

setErrorMessage(MyError, (meta) => `...: ${meta.code}`, "ja");
Parametru Tip Descriere
reference I18nErrorBaseConstructor O clasă care extinde I18nErrorBase. Alte clase sunt eroare de tip.
message string | (meta) => string Mesajul de înregistrat. meta este dedus din clasa țintă.
lang string | Iterable<string> Limba țintă. Un singur cod sau un obiect iterabil (cum ar fi un tablou).

Reînregistrarea aceleiași clase și limbi suprascrie intrarea.

Tipuri

ErrorMeta

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

Constrângerea implicită pentru TMeta. Un obiect readonly cu proprietăți arbitrare.

ErrorOptions

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

Un tip derivat din al doilea argument al Error. Puteți transmite cause.

MessageFactory<TMeta>

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

O funcție care generează un mesaj din meta. Folosită pentru mesajele implicite și cele înregistrate.

I18nErrorBaseParams<TMeta>

Supraîncărcările argumentelor constructorului.

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

Omiteți meta doar când TMeta este undefined.

I18nErrorBaseConstructor

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

Tipul primului argument al setErrorMessage.

Note

  • lang implicit este "en". Comutați cu setGlobalConfig({ lang })
  • Fără normalizarea codurilor de limbă și fără lanț de fallback (de ex. en-US → en). Limbile neînregistrate folosesc mesajul implicit

Ți-a fost utilă această pagină?