ข้อมูลอ้างอิง 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
- ดึง
langของgetGlobalConfig()(หากยังไม่ตั้งค่าจะเป็น"en") - เรียกฟังก์ชันที่ลงทะเบียนของคลาสและภาษานั้นพร้อม
meta - หากยังไม่ลงทะเบียน ใช้ข้อความเริ่มต้น
- หากมี
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) ภาษาที่ยังไม่ลงทะเบียนเป็นข้อความเริ่มต้น