مرجع API
مشخصات 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 |
گزینههای سازگار با آرگومان دوم 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 };
نوعی برگرفته از آرگومان دوم Error. میتوان cause سپرد.
MessageFactory<TMeta>
interface MessageFactory<TMeta extends ErrorMeta | undefined = ErrorMeta | undefined> {
(meta: TMeta): string;
}
تابعی که از meta پیام میسازد. برای پیشفرض و ثبتشده به کار میرود.
I18nErrorBaseParams<TMeta>
overloadهای آرگومان سازنده.
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;
}
نوع آرگومان اول setErrorMessage است.
یادداشتها
- پیشفرض
langبرابر"en"است. باsetGlobalConfig({ lang })جابهجا کنید - نرمالسازی کد زبان یا زنجیرهٔ fallback (مثل
en-USبهen) نیست. زبانهای ثبتنشده پیام پیشفرض میشوند