АПИ референца
Спецификација за I18nErrorBase, setErrorMessage и повезане типове.
I18nErrorBase
Основна класа за проширење Error. message се разрешава према lang.
import { I18nErrorBase } from "i18n-error-base";
class MyError extends I18nErrorBase<{ code: string }> {}
Параметри типа
| Prop | Type | Default | Description |
|---|---|---|---|
TMeta |
ErrorMeta | undefined |
ErrorMeta | undefined |
Тип meta. Када се не користи, наведите undefined. |
Статичка својства
| Prop | Type | Default | Description |
|---|---|---|---|
prefix? |
string |
undefined |
Додаје се на почетак разрешене поруке. |
Својства инстанце
| Prop | Type | Description |
|---|---|---|
meta |
TMeta |
Помоћни податак из конструктора. Може се читати и писати. |
message |
string |
Порука разрешена према lang. Може се набрајати. |
cause |
unknown |
Узрок из ErrorOptions. Стандардно својство Error. |
Конструктор
Ако TMeta искључује undefined, meta је обавезан.
new MyError(meta, message, options?)
Ако је TMeta undefined, meta се може изоставити.
new MyError(message, options?)
new MyError(meta, message, options?)
| Параметар | Тип | Опис |
|---|---|---|
meta |
TMeta |
Помоћни податак за генерисање поруке. |
message |
string | MessageFactory<TMeta> |
Подразумевана порука за нерегистроване језике. Функције примају meta. |
options |
ErrorOptions |
Опције компатибилне са 2. аргументом Error (нпр. { cause }). |
Редослед разрешавања
- Преузима
langизgetGlobalConfig()("en"када није подешено) - Извршава регистровану функцију за ту класу и језик са
meta - Када није регистровано, користи подразумевану поруку
- Ако је подешен
static prefix, додаје се на почетак
setErrorMessage
Региструје фабричке функције порука по језику.
import { setErrorMessage } from "i18n-error-base";
setErrorMessage(MyError, (meta) => `...: ${meta.code}`, "ja");
| Параметар | Тип | Опис |
|---|---|---|
reference |
I18nErrorBaseConstructor |
Класа која наслеђује I18nErrorBase. Остале су грешка типа. |
message |
string | (meta) => string |
Порука за регистрацију. meta се изводи из циљане класе. |
lang |
string | Iterable<string> |
Циљани језик. Један код или итерабил (нпр. низ). |
Поновна регистрација исте класе и језика преписује.
Типови
ErrorMeta
type ErrorMeta = {
readonly [prop: string]: unknown;
};
Подразумевано ограничење за TMeta. Објекат само за читање са произвољним својствима.
ErrorOptions
type ErrorOptions =
ConstructorParameters<typeof Error> extends [
message?: unknown,
options?: (infer TOptions) | undefined,
]
? TOptions
: { readonly cause?: unknown };
Тип изведен из 2. аргумента Error. Може се проследити cause.
MessageFactory<TMeta>
interface MessageFactory<TMeta extends ErrorMeta | undefined = ErrorMeta | undefined> {
(meta: TMeta): string;
}
Функција која ствара поруку из meta. Користи се и за подразумеване и за регистроване поруке.
I18nErrorBaseParams<TMeta>
Преоптерећења аргумената конструктора.
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];
meta се изоставља само када је TMeta undefined.
I18nErrorBaseConstructor
interface I18nErrorBaseConstructor {
new (...args: any): I18nErrorBase;
}
Тип 1. аргумента setErrorMessage.
Напомене
- Подразумевани
langје"en". Промените саsetGlobalConfig({ lang }) - Нема нормализације кодова ни ланца замене (нпр.
en-US→en). Нерегистровани језици дају подразумевану поруку