Hoppa till innehåll
i18n-error-base
Svenska
Esc
↑↓navigera↵öppna⌘Jförhandsvisa
På den här sidan

API-referens

Specifikationer för I18nErrorBase, setErrorMessage och relaterade typer.

I18nErrorBase

En basklass för att utöka Error. message löses enligt lang.

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

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

Typparametrar

Prop Type Default Description
TMeta ErrorMeta | undefined ErrorMeta | undefined Typen för meta. Ange undefined när den inte används.

Statiska egenskaper

Prop Type Default Description
prefix? string undefined Läggs till i början av det lösta meddelandet.

Instansegenskaper

Prop Type Description
meta TMeta Hjälpeinfo från konstruktorn. Kan läsas och skrivas.
message string Löses enligt lang. Uppräkningsbart.
cause unknown Orsaken från ErrorOptions. En standardegenskap på Error.

Konstruktor

När TMeta inte omfattar undefined är meta obligatorisk.

new MyError(meta, message, options?)

När TMeta är undefined kan meta utelämnas.

new MyError(message, options?)
new MyError(meta, message, options?)
Parameter Type Description
meta TMeta Hjälpeinfo för meddelandegenerering.
message string | MessageFactory<TMeta> Standardmeddelandet för språk utan registrering. Funktioner tar emot meta.
options ErrorOptions Alternativ kompatibla med det andra argumentet till Error (t.ex. { cause }).

Upplösningsordning

  1. Hämtar lang från getGlobalConfig() ("en" när den inte är satt)
  2. Kör den registrerade funktionen för den klassen och det språket med meta
  3. När oregistrerat, använd standardmeddelandet
  4. Om static prefix är satt, lägg det till i början

setErrorMessage

Registrerar meddelandefunktioner per språk.

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

setErrorMessage(MyError, (meta) => `...: ${meta.code}`, "ja");
Parameter Type Description
reference I18nErrorBaseConstructor En klass som ärver I18nErrorBase. Klasser utan arv ger ett typfel.
message string | (meta) => string Meddelandet som ska registreras. meta härleds från målklassen.
lang string | Iterable<string> Målspråket. En enskild kod eller ett itererbart objekt (t.ex. en array).

Omregistrering av samma klass och språk skriver över.

Typer

ErrorMeta

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

Standardbegränsningen för TMeta. Ett skrivskyddat objekt med godtyckliga egenskaper.

ErrorOptions

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

En typ härledd från det andra argumentet till Error. Du kan skicka cause.

MessageFactory<TMeta>

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

En funktion som skapar ett meddelande från meta. Används för både standard- och registrerade meddelanden.

I18nErrorBaseParams<TMeta>

Konstruktorns argumentöverlagringar.

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

Utelämna meta endast när TMeta är undefined.

I18nErrorBaseConstructor

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

Typen för det första argumentet till setErrorMessage.

Anteckningar

  • Standard-lang är "en". Växla den explicit med setGlobalConfig({ lang })
  • Ingen normalisering av språkkoder eller fallback-kedja (t.ex. en-US till en). Oregistrerade språk använder standardmeddelandet

Var den här sidan till hjälp?