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