API-referencia
Az I18nErrorBase, a setErrorMessage és a kapcsolódó típusok specifikációja.
I18nErrorBase
Az Error kiterjesztésére szolgáló alaposztály. A message a lang alapján oldódik fel.
import { I18nErrorBase } from "i18n-error-base";
class MyError extends I18nErrorBase<{ code: string }> {}
Típusparaméterek
| Prop | Típus | Alapértelmezett | Leírás |
|---|---|---|---|
TMeta |
ErrorMeta | undefined |
ErrorMeta | undefined |
A meta típusa. Ha nem használja, adjon meg undefined értéket. |
Statikus tulajdonságok
| Prop | Típus | Alapértelmezett | Leírás |
|---|---|---|---|
prefix? |
string |
undefined |
A feloldott üzenet elejére fűződik. |
Példánytulajdonságok
| Prop | Típus | Leírás |
|---|---|---|
meta |
TMeta |
A konstruktor kiegészítő adatai. Olvasható és írható. |
message |
string |
Az aktuális lang alapján feloldva. Felsorolható. |
cause |
unknown |
Az ErrorOptions segítségével átadott ok. Az Error szabványos tulajdonsága. |
Konstruktor
Ha a TMeta nem tartalmazza az undefined értéket, a meta kötelező.
new MyError(meta, message, options?)
Ha a TMeta értéke undefined, a meta elhagyható.
new MyError(message, options?)
new MyError(meta, message, options?)
| Paraméter | Típus | Leírás |
|---|---|---|
meta |
TMeta |
Az üzenetgeneráláshoz használt kiegészítő adatok. |
message |
string | MessageFactory<TMeta> |
Nem regisztrált nyelvek alapértelmezett üzenete. Függvény esetén a meta értéket fogadja. |
options |
ErrorOptions |
Az Error második argumentumával kompatibilis opciók (pl. { cause }). |
Feloldási sorrend
- Lekéri a
getGlobalConfig()langértékét ("en"beállítás hiányában) - Végrehajtja az adott osztályhoz és nyelvhez regisztrált függvényt a
metaátadásával - Ha nincs regisztráció, az alapértelmezett üzenetet használja
- Ha van
static prefix, az elejére fűzi
setErrorMessage
Nyelvenkénti üzenetkészítő függvényeket regisztrál.
import { setErrorMessage } from "i18n-error-base";
setErrorMessage(MyError, (meta) => `...: ${meta.code}`, "ja");
| Paraméter | Típus | Leírás |
|---|---|---|
reference |
I18nErrorBaseConstructor |
Az I18nErrorBase osztályból öröklő osztály. Más osztályok típushibát okoznak. |
message |
string | (meta) => string |
A regisztrálandó üzenet. A meta típusa a célosztályból következtethető. |
lang |
string | Iterable<string> |
Célnyelv. Egyetlen kód vagy iterálható objektum (pl. tömb). |
Azonos osztály és nyelv újbóli regisztrálása felülírja a bejegyzést.
Típusok
ErrorMeta
type ErrorMeta = {
readonly [prop: string]: unknown;
};
A TMeta alapértelmezett korlátja. Tetszőleges tulajdonságú, csak olvasható objektum.
ErrorOptions
type ErrorOptions =
ConstructorParameters<typeof Error> extends [
message?: unknown,
options?: (infer TOptions) | undefined,
]
? TOptions
: { readonly cause?: unknown };
Az Error második argumentumából származtatott típus. cause értéket adhat át.
MessageFactory<TMeta>
interface MessageFactory<TMeta extends ErrorMeta | undefined = ErrorMeta | undefined> {
(meta: TMeta): string;
}
A meta alapján üzenetet generáló függvény. Alapértelmezett és regisztrált üzenetekhez egyaránt használható.
I18nErrorBaseParams<TMeta>
A konstruktorargumentumok túlterhelései.
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];
A meta csak akkor hagyható el, ha a TMeta értéke undefined.
I18nErrorBaseConstructor
interface I18nErrorBaseConstructor {
new (...args: any): I18nErrorBase;
}
A setErrorMessage első argumentumának típusa.
Megjegyzések
- A
messagefeloldásához használtlangalapértelmezett értéke"en". Váltson asetGlobalConfig({ lang })segítségével - Nincs nyelvkód-normalizálás vagy tartalék lánc (pl.
en-US→en). A nem regisztrált nyelvek az alapértelmezett üzenetet kapják