Zum Inhalt springen
i18n-error-base
Deutsch
Esc
↑↓navigieren↵öffnen⌘Jvorschau
Auf dieser Seite

API-Referenz

Spezifikation von I18nErrorBase, setErrorMessage und der zugehörigen Typen.

I18nErrorBase

Die Basisklasse zur Erweiterung von Error. message wird entsprechend lang aufgelöst.

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

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

Typparameter

Prop Type Default Description
TMeta ErrorMeta | undefined ErrorMeta | undefined Der Typ von meta. Geben Sie undefined an, wenn Sie ihn nicht verwenden.

Statische Eigenschaften

Prop Type Default Description
prefix? string undefined Wird dem aufgelösten Nachrichtenanfang vorangestellt.

Instanzeigenschaften

Prop Type Description
meta TMeta Zusatzinformationen des Konstruktors. Lesbar und schreibbar.
message string Wird entsprechend lang aufgelöst. Aufzählbar.
cause unknown Die Ursache aus ErrorOptions. Eine Standard-Eigenschaft von Error.

Konstruktor

Wenn TMeta kein undefined enthält, ist meta erforderlich.

new MyError(meta, message, options?)

Wenn TMeta den Wert undefined hat, kann meta weggelassen werden.

new MyError(message, options?)
new MyError(meta, message, options?)
Parameter Typ Beschreibung
meta TMeta Zusatzinformationen zur Nachrichtenerzeugung.
message string | MessageFactory<TMeta> Standardnachricht für Sprachen ohne Registrierung. Funktionen erhalten meta.
options ErrorOptions Optionen, kompatibel mit dem zweiten Argument von Error (z. B. { cause }).

Auflösungsreihenfolge

  1. Holt lang aus getGlobalConfig() (wenn nicht gesetzt, "en").
  2. Führt die registrierte Funktion für diese Klasse und Sprache mit meta aus.
  3. Wenn nicht registriert, wird die Standardnachricht verwendet.
  4. Falls static prefix gesetzt ist, wird es vorangestellt.

setErrorMessage

Registriert Nachrichtenerzeugungsfunktionen pro Sprache.

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

setErrorMessage(MyError, (meta) => `...: ${meta.code}`, "ja");
Parameter Typ Beschreibung
reference I18nErrorBaseConstructor Eine Klasse, die I18nErrorBase erweitert. Klassen ohne diese Vererbung führen zu einem Typfehler.
message string | (meta) => string Die zu registrierende Nachricht. Der Typ von meta wird aus der Zielklasse abgeleitet.
lang string | Iterable<string> Die Zielsprache. Ein einzelner Code oder ein iterierbares Objekt (z. B. ein Array).

Eine erneute Registrierung derselben Klasse und Sprache überschreibt den Eintrag.

Typen

ErrorMeta

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

Die Standard-Einschränkung für TMeta. Ein schreibgeschütztes Objekt mit beliebigen Eigenschaften.

ErrorOptions

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

Ein vom zweiten Argument von Error abgeleiteter Typ. Es kann cause übergeben werden.

MessageFactory<TMeta>

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

Eine Funktion, die aus meta eine Nachricht erzeugt. Wird sowohl für Standard- als auch für registrierte Nachrichten verwendet.

I18nErrorBaseParams<TMeta>

Konstruktorargument-Überladungen.

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

Die Kurzform ohne meta ist nur zulässig, wenn TMeta den Wert undefined hat.

I18nErrorBaseConstructor

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

Der Typ des ersten Arguments von setErrorMessage.

Hinweise

  • Der Standardwert von lang lautet "en". Wechseln Sie ihn mit setGlobalConfig({ lang }).
  • Es gibt weder eine Normalisierung von Sprachcodes noch eine Fallback-Kette (z. B. en-US → en). Nicht registrierte Sprachen ergeben die Standardnachricht.

War diese Seite hilfreich?