الانتقال إلى المحتوى
i18n-error-base
العربية
Esc
↑↓تنقل↵فتح⌘Jمعاينة
في هذه الصفحة

مرجع 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 }).

ترتيب الحل

  1. احصل على lang من getGlobalConfig() (تكون "en" عند عدم الضبط)
  2. نفِّذ الدالة المسجلة لتلك الفئة واللغة مع meta
  3. عند عدم التسجيل، استخدم الرسالة الافتراضية
  4. إذا وُجد 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). اللغات غير المسجلة تُعطي الافتراضية

هل كانت هذه الصفحة مفيدة؟