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 } 등). |
해결 순서
getGlobalConfig()의lang을 가져옵니다(설정되지 않은 경우"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];
TMeta가 undefined일 때만 meta를 생략할 수 있습니다.
I18nErrorBaseConstructor
interface I18nErrorBaseConstructor {
new (...args: any): I18nErrorBase;
}
setErrorMessage의 첫 번째 인수의 타입입니다.
참고
- 기본
lang은"en"입니다.setGlobalConfig({ lang })으로 전환하십시오 - 언어 코드의 정규화나 폴백 체인(예:
en-US→en)은 없습니다. 미등록 언어는 기본 메시지입니다