مرجع 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>
تحميلات وسائط المُنشئ.
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 }) - لا تسوية لرموز اللغة ولا سلسلة تراجع (مثل
en-US→en). اللغات غير المسجلة تُعطي الافتراضية