پرش به محتوا
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>

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) نیست. زبان‌های ثبت‌نشده پیام پیش‌فرض می‌شوند

آیا این صفحه مفید بود؟