@zerochae/ts-enum
Version:
A TypeScript Enum library inspired by Java's Enum.
43 lines (42 loc) • 1.26 kB
JavaScript
/**
* 존재하지 않는 Enum 값을 요청했을 때 발생하는 예외
* `valueOf()` 메서드에서 유효하지 않은 값을 찾을 경우 발생한다.
*
* @example
* ```typescript
* const status = UserStatus.valueOf("DELETED"); // `UserStatus.DELETED` 가 존재하지 않음으로 예외 발생
* ```
*/
export class EnumNotFound extends Error {
/**
* @param value - 존재하지 않는 Enum 값
*/
constructor(value) {
super(`'${value}' is an invalid value in Enum`);
this.name = "EnumNotFound";
}
}
/**
* 유효하지 않은 값이 Enum에 전달되었을 때 발생하는 예외
* `Enum`의 생성자나 `valueOf()` 메서드에서 `null` 또는 `undefined` 값이 전달되면 발생한다.
*
* @example
* ```typescript
* const status = UserStatus.valueOf(null); // InvalidEnumValue 예외 발생
* ```
*
* ```typescript
* class CustomEnum extends Enum {
* static readonly OPTION = new CustomEnum(null); // InvalidEnumValue 예외 발생
* }
* ```
*/
export class InvalidEnumValue extends Error {
/**
* @param value - 유효하지 않은 Enum 값
*/
constructor(value) {
super(`Invalid Enum value: ${value}`);
this.name = "InvalidEnumValue";
}
}