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
- Hämtar
langfrångetGlobalConfig()("en"när den inte är satt) - Kör den registrerade funktionen för den klassen och det språket med
meta - När oregistrerat, använd standardmeddelandet
- 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 medsetGlobalConfig({ lang }) - Ingen normalisering av språkkoder eller fallback-kedja (t.ex.
en-UStillen). Oregistrerade språk använder standardmeddelandet