API-referanse
Spesifikasjoner for I18nErrorBase, setErrorMessage og relaterte typer.
I18nErrorBase
En baseklasse for å utvide Error. message løses etter 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. Angi undefined når den ikke brukes. |
Statiske egenskaper
| Prop | Type | Default | Description |
|---|---|---|---|
prefix? |
string |
undefined |
Legges til foran den løste meldingen. |
Instansegenskaper
| Prop | Type | Description |
|---|---|---|
meta |
TMeta |
Hjelpeinfo fra konstruktøren. Kan leses og skrives. |
message |
string |
Løses etter lang. Enumerable. |
cause |
unknown |
Årsaken fra ErrorOptions. En standard Error-egenskap. |
Konstruktør
Når TMeta ikke omfatter undefined, er meta påkrevd.
new MyError(meta, message, options?)
Når TMeta er undefined, kan meta utelates.
new MyError(message, options?)
new MyError(meta, message, options?)
| Parameter | Type | Description |
|---|---|---|
meta |
TMeta |
Hjelpeinfo for meldingsgenerering. |
message |
string | MessageFactory<TMeta> |
Standardmeldingen for språk uten registrering. Funksjoner mottar meta. |
options |
ErrorOptions |
Alternativer kompatible med det andre argumentet til Error (f.eks. { cause }). |
Løsningsrekkefølge
- Hent
langfragetGlobalConfig()("en"når den ikke er satt) - Kjør den registrerte funksjonen for den klassen og det språket med
meta - Når uregistrert, bruk standardmeldingen
- Hvis
static prefixer satt, legg det til foran
setErrorMessage
Registrerer meldingsfunksjoner per språk.
import { setErrorMessage } from "i18n-error-base";
setErrorMessage(MyError, (meta) => `...: ${meta.code}`, "ja");
| Parameter | Type | Description |
|---|---|---|
reference |
I18nErrorBaseConstructor |
En klasse som arver fra I18nErrorBase. Klasser uten arv er en typefeil. |
message |
string | (meta) => string |
Meldingen som skal registreres. meta utledes fra målklassen. |
lang |
string | Iterable<string> |
Målspråket. En enkelt kode eller et itererbart objekt (f.eks. en matrise). |
Å registrere samme klasse og språk på nytt overskriver.
Typer
ErrorMeta
type ErrorMeta = {
readonly [prop: string]: unknown;
};
Standardbegrensningen for TMeta. Et skrivebeskyttet objekt med vilkårlige egenskaper.
ErrorOptions
type ErrorOptions =
ConstructorParameters<typeof Error> extends [
message?: unknown,
options?: (infer TOptions) | undefined,
]
? TOptions
: { readonly cause?: unknown };
En type avledet fra det andre argumentet til Error. Du kan sende cause.
MessageFactory<TMeta>
interface MessageFactory<TMeta extends ErrorMeta | undefined = ErrorMeta | undefined> {
(meta: TMeta): string;
}
En funksjon som lager en melding fra meta. Brukes for både standard- og registrerte meldinger.
I18nErrorBaseParams<TMeta>
Konstruktørargumentenes 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];
Utelat meta bare når TMeta er undefined.
I18nErrorBaseConstructor
interface I18nErrorBaseConstructor {
new (...args: any): I18nErrorBase;
}
Typen til det første argumentet til setErrorMessage.
Merknader
- Standard-
langer"en". Bytt den eksplisitt medsetGlobalConfig({ lang }) - Ingen normalisering av språkkoder eller fallback-kjede (f.eks.
en-UStilen). Uregistrerte språk bruker standardmeldingen