דלג לתוכן
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 })
  • אין נרמול של קודי שפה ואין שרשרת fallback (לדוגמה en-US → en). שפות לא רשומות מקבלות את ברירת המחדל

האם העמוד הזה היה מועיל?