API-reference
Specifikationer for I18nErrorBase, setErrorMessage og relaterede typer.
I18nErrorBase
En basisklasse til nedarvning af Error. message løses efter lang.
import { I18nErrorBase } from "i18n-error-base";
class MyError extends I18nErrorBase<{ code: string }> {}
Typeparametre
| Prop | Type | Default | Description |
|---|---|---|---|
TMeta |
ErrorMeta | undefined |
ErrorMeta | undefined |
Typen for meta. Angiv undefined, når den ikke bruges. |
Statiske egenskaber
| Prop | Type | Default | Description |
|---|---|---|---|
prefix? |
string |
undefined |
Sættes foran den løste meddelelse. |
Instansegenskaber
| Prop | Type | Description |
|---|---|---|
meta |
TMeta |
Hjælpeinfo fra konstruktøren. Kan læses og skrives. |
message |
string |
Løses efter lang. Kan optælles. |
cause |
unknown |
Årsagen fra ErrorOptions. En standard Error-egenskab. |
Konstruktør
Når TMeta ikke omfatter undefined, er meta påkrævet.
new MyError(meta, message, options?)
Når TMeta er undefined, kan meta udelades.
new MyError(message, options?)
new MyError(meta, message, options?)
| Parameter | Type | Description |
|---|---|---|
meta |
TMeta |
Hjælpeinfo til meddelelsesgenerering. |
message |
string | MessageFactory<TMeta> |
Standardmeddelelsen for sprog uden registrering. Funktioner modtager meta. |
options |
ErrorOptions |
Indstillinger kompatible med det andet argument til Error (f.eks. { cause }). |
Opløsningsrækkefølge
- Henter
langfragetGlobalConfig()("en", når den ikke er angivet) - Kører den registrerede funktion for den klasse og det sprog med
meta - Når uregistreret, bruges standardmeddelelsen
- Hvis
static prefixer angivet, sættes det foran
setErrorMessage
Registrerer meddelelsesfunktioner pr. sprog.
import { setErrorMessage } from "i18n-error-base";
setErrorMessage(MyError, (meta) => `...: ${meta.code}`, "ja");
| Parameter | Type | Description |
|---|---|---|
reference |
I18nErrorBaseConstructor |
En klasse, der nedarver I18nErrorBase. Klasser uden nedarvning giver en typefejl. |
message |
string | (meta) => string |
Meddelelsen, der skal registreres. meta udledes fra målklassen. |
lang |
string | Iterable<string> |
Målsproget. En enkelt kode eller et itererbart objekt (f.eks. en matrix). |
Genregistrering af samme klasse og sprog overskriver.
Typer
ErrorMeta
type ErrorMeta = {
readonly [prop: string]: unknown;
};
Standardbegrænsningen for TMeta. Et skrivebeskyttet objekt med vilkårlige egenskaber.
ErrorOptions
type ErrorOptions =
ConstructorParameters<typeof Error> extends [
message?: unknown,
options?: (infer TOptions) | undefined,
]
? TOptions
: { readonly cause?: unknown };
En type udledt fra det andet argument til Error. Du kan sende cause.
MessageFactory<TMeta>
interface MessageFactory<TMeta extends ErrorMeta | undefined = ErrorMeta | undefined> {
(meta: TMeta): string;
}
En funktion, der laver en meddelelse ud fra meta. Bruges til både standard- og registrerede meddelelser.
I18nErrorBaseParams<TMeta>
Konstruktørargumenternes overloads.
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];
Udelad kun meta, når TMeta er undefined.
I18nErrorBaseConstructor
interface I18nErrorBaseConstructor {
new (...args: any): I18nErrorBase;
}
Typen for det første argument til setErrorMessage.
Noter
- Standard-
langer"en". Skift den eksplicit medsetGlobalConfig({ lang }) - Ingen normalisering af sprogkoder eller fallback-kæde (f.eks.
en-UStilen). Uregistrerede sprog bruger standardmeddelelsen