ข้ามไปยังเนื้อหา
i18n-error-base
ไทย
Esc
↑↓นำทาง↵เปิด⌘Jดูตัวอย่าง
ในหน้านี้

ข้อมูลอ้างอิง API

ข้อมูลจำเพาะของ I18nErrorBase, setErrorMessage และชนิดที่เกี่ยวข้อง

I18nErrorBase

คลาสพื้นฐานสำหรับสืบทอด Error message จะ resolve ตาม 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 เชื่อมไว้หน้าข้อความที่ resolve แล้ว

คุณสมบัติอินสแตนซ์

Prop Type Description
meta TMeta ข้อมูลประกอบจากคอนสตรักเตอร์ อ่านและเขียนได้
message string resolve ตาม lang ปัจจุบัน สามารถ enumerate ได้
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 ออปชันเข้ากันได้กับอาร์กิวเมนต์ตัวที่ 2 ของ Error (เช่น { cause })

ลำดับการ resolve

  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 ไม่ใช่จะเกิด type error
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 };

ชนิดจากอาร์กิวเมนต์ตัวที่ 2 ของ 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;
}

ชนิดอาร์กิวเมนต์ตัวที่ 1 ของ setErrorMessage

หมายเหตุเพิ่มเติม

  • ค่าเริ่มต้น lang คือ "en" สลับชัดเจนด้วย setGlobalConfig({ lang })
  • ไม่ normalize รหัสภาษาหรือ fallback chain (เช่น en-US → en) ภาษาที่ยังไม่ลงทะเบียนเป็นข้อความเริ่มต้น

หน้านี้มีประโยชน์หรือไม่?