Referință API
Specificațiile pentru I18nErrorBase, setErrorMessage și tipurile asociate.
I18nErrorBase
Clasă de bază pentru extinderea Error. message se rezolvă în funcție de lang.
import { I18nErrorBase } from "i18n-error-base";
class MyError extends I18nErrorBase<{ code: string }> {}
Parametri de tip
| Prop | Type | Default | Description |
|---|---|---|---|
TMeta |
ErrorMeta | undefined |
ErrorMeta | undefined |
Tipul meta. Specificați undefined când nu este folosit. |
Proprietăți statice
| Prop | Type | Default | Description |
|---|---|---|---|
prefix? |
string |
undefined |
Adăugat la începutul mesajului rezolvat. |
Proprietăți de instanță
| Prop | Type | Description |
|---|---|---|
meta |
TMeta |
Datele auxiliare ale constructorului. Pot fi citite și scrise. |
message |
string |
Rezolvat în funcție de lang. Enumerabil. |
cause |
unknown |
Cauza din ErrorOptions. Proprietate standard a Error. |
Constructor
Când TMeta nu include undefined, meta este obligatoriu.
new MyError(meta, message, options?)
Când TMeta este undefined, meta poate fi omis.
new MyError(message, options?)
new MyError(meta, message, options?)
| Parametru | Tip | Descriere |
|---|---|---|
meta |
TMeta |
Datele auxiliare pentru generarea mesajului. |
message |
string | MessageFactory<TMeta> |
Mesajul implicit pentru limbile fără înregistrare. Funcțiile primesc meta. |
options |
ErrorOptions |
Opțiuni compatibile cu al doilea argument al Error (cum ar fi { cause }). |
Ordinea de rezolvare
- Obține
langdingetGlobalConfig()("en"când nu este setat) - Execută funcția înregistrată pentru acea clasă și limbă, cu
meta - Când nu există înregistrare, folosește mesajul implicit
- Dacă
static prefixeste setat, îl adaugă la început
setErrorMessage
Înregistrează funcții de creare a mesajelor pentru fiecare limbă.
import { setErrorMessage } from "i18n-error-base";
setErrorMessage(MyError, (meta) => `...: ${meta.code}`, "ja");
| Parametru | Tip | Descriere |
|---|---|---|
reference |
I18nErrorBaseConstructor |
O clasă care extinde I18nErrorBase. Alte clase sunt eroare de tip. |
message |
string | (meta) => string |
Mesajul de înregistrat. meta este dedus din clasa țintă. |
lang |
string | Iterable<string> |
Limba țintă. Un singur cod sau un obiect iterabil (cum ar fi un tablou). |
Reînregistrarea aceleiași clase și limbi suprascrie intrarea.
Tipuri
ErrorMeta
type ErrorMeta = {
readonly [prop: string]: unknown;
};
Constrângerea implicită pentru TMeta. Un obiect readonly cu proprietăți arbitrare.
ErrorOptions
type ErrorOptions =
ConstructorParameters<typeof Error> extends [
message?: unknown,
options?: (infer TOptions) | undefined,
]
? TOptions
: { readonly cause?: unknown };
Un tip derivat din al doilea argument al Error. Puteți transmite cause.
MessageFactory<TMeta>
interface MessageFactory<TMeta extends ErrorMeta | undefined = ErrorMeta | undefined> {
(meta: TMeta): string;
}
O funcție care generează un mesaj din meta. Folosită pentru mesajele implicite și cele înregistrate.
I18nErrorBaseParams<TMeta>
Supraîncărcările argumentelor constructorului.
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];
Omiteți meta doar când TMeta este undefined.
I18nErrorBaseConstructor
interface I18nErrorBaseConstructor {
new (...args: any): I18nErrorBase;
}
Tipul primului argument al setErrorMessage.
Note
langimplicit este"en". Comutați cusetGlobalConfig({ lang })- Fără normalizarea codurilor de limbă și fără lanț de fallback (de ex.
en-US→en). Limbile neînregistrate folosesc mesajul implicit