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
- Holt
langausgetGlobalConfig()(wenn nicht gesetzt,"en"). - Führt die registrierte Funktion für diese Klasse und Sprache mit
metaaus. - Wenn nicht registriert, wird die Standardnachricht verwendet.
- Falls
static prefixgesetzt 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
langlautet"en". Wechseln Sie ihn mitsetGlobalConfig({ lang }). - Es gibt weder eine Normalisierung von Sprachcodes noch eine Fallback-Kette (z. B.
en-US→en). Nicht registrierte Sprachen ergeben die Standardnachricht.