본문으로 건너뛰기
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. getGlobalConfig()의 lang을 가져옵니다(설정되지 않은 경우 "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];

TMeta가 undefined일 때만 meta를 생략할 수 있습니다.

I18nErrorBaseConstructor

interface I18nErrorBaseConstructor {
  new (...args: any): I18nErrorBase;
}

setErrorMessage의 첫 번째 인수의 타입입니다.

참고

  • 기본 lang은 "en"입니다. setGlobalConfig({ lang })으로 전환하십시오
  • 언어 코드의 정규화나 폴백 체인(예: en-US → en)은 없습니다. 미등록 언어는 기본 메시지입니다

이 페이지가 도움이 되었나요?