타입 정의
서문
이 페이지에서는 iztro의 타입 정의를 설명합니다. 국제화 타입은 i18n에 정의되어 있으며, 나머지 타입은 types에 정의되어 있습니다.
다음 코드로 국제화 타입을 가져올 수 있습니다:
import { HeavenlyStemName } from "iztro/lib/i18n";다른 타입은 다음과 같이 가져옵니다:
import { Palace } from "iztro/lib/data/types";팁
번역이나 타입 정의에서 오류나 부적절한 내용을 발견하면 이슈를 등록해 주세요. 감사합니다!
국제화 타입
iztro는 다국어 입력과 출력을 지원하기 위해 매개변수와 결과 값에 여러 언어의 이름을 정의합니다. 입력값은 지원되는 어떤 언어로도 지정할 수 있습니다. 예를 들어 HeavenlyStemName에는 甲, 갑, jia를 전달할 수 있습니다.
예를 들어 getHoroscopeStar()를 호출할 때 천간(天干)과 지지(地支)의 중국어 이름을 인수로 전달할 수 있습니다:
import { getHoroscopeStar } from "iztro/lib/star";
getHoroscopeStar("甲", "子", "decadal");다른 지원 언어의 이름을 인수로 전달하거나, 한 번의 호출에서 여러 언어를 섞어 사용할 수도 있습니다:
import { getHoroscopeStar } from "iztro/lib/star";
getHoroscopeStar("갑", "zi", "decadal");입력에 어떤 언어를 사용하든 출력은 지정한 언어로 통일됩니다. 메서드를 호출하기 전에 출력 언어를 설정하세요:
import { setLanguage } from "iztro/lib/i18n";
setLanguage("ko-KR");
const horoscopeStar = getHoroscopeStar("甲", "zi", "decadal");이때 horoscopeStar의 출력 결과는 한국어가 됩니다.
horoscopeStar 출력 결과
[
[
{
"name": "록존(십년)",
"type": "lucun",
"scope": "decadal"
},
{
"name": "천마(십년)",
"type": "tianma",
"scope": "decadal"
}
],
[
{
"name": "경양(십년)",
"type": "tough",
"scope": "decadal"
},
{
"name": "홍란(십년)",
"type": "flower",
"scope": "decadal"
}
],
[],
[
{
"name": "문창(십년)",
"type": "soft",
"scope": "decadal"
}
],
[],
[
{
"name": "천월(십년)",
"type": "soft",
"scope": "decadal"
}
],
[],
[
{
"name": "문곡(십년)",
"type": "soft",
"scope": "decadal"
},
{
"name": "천희(십년)",
"type": "flower",
"scope": "decadal"
}
],
[],
[],
[],
[
{
"name": "천괴(십년)",
"type": "soft",
"scope": "decadal"
},
{
"name": "타라(십년)",
"type": "tough",
"scope": "decadal"
}
]
]HeavenlyStemName
십천간(十天干)의 이름을 정의합니다.
甲 | 乙 | 丙 | 丁 | 戊 | 己 | 庚 | 辛 | 壬 | 癸
EarthlyBranchName
십이지지(十二地支)를 정의합니다. 지지 오(午)와 천간 무(戊)는 영어 표기로 옮기면 모두 “wu”가 됩니다. 다국어 입력에서 이름이 충돌하지 않도록, 라이브러리에서는 지지 오(午)를 woo로 표기합니다.
子 | 丑 | 寅 | 卯 | 辰 | 巳 | 午 | 未 | 申 | 酉 | 戌 | 亥
PalaceName
자미두수(紫微斗數) 궁위(宮位)의 이름을 정의합니다.
命宫 | 身宫 | 兄弟 | 夫妻 | 子女 | 财帛 | 疾厄 | 迁移 | 仆役 | 官禄 | 田宅 | 福德 | 父母 | 来因
Brightness
성요(星曜)의 밝기를 정의합니다.
"" | 庙 | 旺 | 得 | 利 | 平 | 不 | 陷
Mutagen
자미두수(紫微斗數)에서 사화성(四化星)의 이름을 정의합니다.
禄 | 权 | 科 | 忌
StarName
자미두수(紫微斗數)의 성요(星曜) 이름을 정의하며, 유요(流曜)도 포함합니다.
warrior와 breaker입니다.紫微 | 天机 | 太阳 | 武曲 | 天同 | 廉贞 | 天府 | 太阴 | 贪狼 | 巨门 | 天相 | 天梁 | 七杀 | 破军 | 左辅 | 右弼 | 文昌 | 文曲 | 禄存 | 天马 | 擎羊 | 陀罗 | 火星 | 铃星 | 天魁 | 天钺 | 地空 | 地劫 | 劫杀 | 天空 | 天刑 | 天姚 | 解神 | 阴煞 | 天喜 | 天官 | 天福 | 天哭 | 天虚 | 龙池 | 凤阁 | 红鸾 | 孤辰 | 寡宿 | 蜚廉 | 破碎 | 台辅 | 封诰 | 天巫 | 天月 | 三台 | 八座 | 恩光 | 天贵 | 天才 | 天寿 | 截空 | 旬中 | 旬空 | 空亡 | 截路 | 月德 | 天伤 | 天使 | 天厨 | 长生 | 沐浴 | 冠带 | 临官 | 帝旺 | 衰 | 病 | 死 | 墓 | 绝 | 胎 | 养 | 博士 | 力士 | 青龙 | 小耗 | 将军 | 奏书 | 飞廉 | 喜神 | 病符 | 大耗 | 岁破 | 伏兵 | 官府 | 岁建 | 晦气 | 丧门 | 贯索 | 官符 | 龙德 | 白虎 | 天德 | 吊客 | 将星 | 攀鞍 | 岁驿 | 息神 | 华盖 | 劫煞 | 灾煞 | 天煞 | 指背 | 咸池 | 月煞 | 亡神 | 运魁 | 运钺 | 运昌 | 运曲 | 运鸾 | 运喜 | 运禄 | 运羊 | 运陀 | 运马 | 流魁 | 流钺 | 流昌 | 流曲 | 流鸾 | 流喜 | 流禄 | 流羊 | 流陀 | 流马 | 年解 | 月魁 | 月钺 | 月昌 | 月曲 | 月鸾 | 月喜 | 月禄 | 月羊 | 月陀 | 月马 | 日魁 | 日钺 | 日昌 | 日曲 | 日鸾 | 日喜 | 日禄 | 日羊 | 日陀 | 日马 | 时魁 | 时钺 | 时昌 | 时曲 | 时鸾 | 时喜 | 时禄 | 时羊 | 时陀 | 时马
동명의 별칭 성요(星曜) ^2.6.1
서로 다른 성요(星曜)의 한국어 또는 베트남어 이름이 같을 때는 한자가 붙은 구분용 별칭을 입력해 원하는 성요를 정확히 지정할 수 있습니다. 이 별칭은 입력에만 사용하며, 번역된 출력에는 기존 이름이 표시됩니다.
- 한국어:
천상(天相),천상(天傷),천월(天鉞),천월(天月),겁살(劫殺),겁살(劫煞),비렴(蜚廉),비렴(飛廉),관부(官府),관부(官符) - 베트남어:
Kiếp Sát(劫殺),Kiếp Sát(劫煞),Phi Liêm(蜚廉),Phi Liêm(飛廉)
FiveElementsClassName
자미두수(紫微斗數)에서 오행국(五行局)의 이름을 정의합니다.
水二局 | 木三局 | 金四局 | 土五局 | 火六局
GenderName
성별의 이름을 정의합니다.
男 | 女
공통 타입
Language
export type Language = `zh-CN` | `zh-TW` | `en-US` | `ko-KR` | `ja-JP` | `vi-VN`;지원되는 언어가 정의됩니다. 현재 지원되는 언어는 다음과 같습니다.
zh-CN: 중국어 간체zh-TW: 중국어(번체)en-US:Englishko-KR:한국어ja-JP: 일본어vi-VN: 베트남어
Scope
export type Scope = "origin" | "decadal" | "yearly";성요(星曜)의 적용 범위를 정의하여 본명 성요(本命星曜)와 유요(流曜)를 구분합니다:
origin: 본명 성요(本命星曜)decadal: 대한 성요(大限星曜)yearly: 유년 성요(流年星曜)
StarType
export type StarType =
| "major"
| "soft"
| "tough"
| "adjective"
| "flower"
| "helper"
| "lucun"
| "tianma";성요(星曜)의 유형을 정의합니다. 도화성(桃花星)과 해신(解神)(해신(년)(年解) 포함)은 잡요(雜曜)이지만 명반 해석에서 특별한 의미가 있어 별도로 분류합니다. 두 보조 성요인 록존(祿存)과 천마(天馬)도 특수한 역할이 있어 각각 따로 분류합니다:
major: 주성(主星)soft: 길성(吉星)tough: 살성(煞星)adjective: 잡요(雜曜)flower: 도화성(桃花)helper:해신(解神)lucun:록존(祿存)tianma:천마(天馬)
성요(星曜)
Star
export type Star = {
name: StarName;
type: StarType;
scope: Scope;
brightness?: Brightness;
mutagen?: Mutagen;
};성요(星曜) 객체를 정의합니다.
| 속성 | 설명 | 타입 |
|---|---|---|
name | 성요 이름 | StarName |
type | 성요 타입 | StarType |
scope | 범위 | Scope |
brightness | 별의 밝기 | Brightness |
mutagen | 사화(四化) | Mutagen |
궁(宮位)
SoulAndBody
export type SoulAndBody = {
soulIndex: number;
bodyIndex: number;
heavenlyStemOfSoul: HeavenlyStemName;
earthlyBranchOfSoul: EarthlyBranchName;
};명궁(命宮) 및 신궁(身宮) 위치 정보가 정의됩니다.
| 속성 | 설명 | 타입 |
|---|---|---|
soulIndex | 명궁 인덱스 | number |
bodyIndex | 신궁 인덱스 | number |
heavenlyStemOfSoul | 명궁의 천간 | HeavenlyStemName |
earthlyBranchOfSoul | 명궁의 지지 | EarthlyBranchName |
Palace
export type Palace = {
name: PalaceName;
isBodyPalace: boolean;
isOriginalPalace: boolean;
heavenlyStem: HeavenlyStemName;
earthlyBranch: EarthlyBranchName;
majorStars: Star[];
minorStars: Star[];
adjectiveStars: Star[];
changsheng12: StarName;
boshi12: StarName;
jiangqian12: StarName;
suiqian12: StarName;
decadal: Decadal;
ages: number[];
};궁(宮位) 객체를 정의합니다.
| 속성 | 설명 | 타입 |
|---|---|---|
name | 궁 이름 | PalaceName |
isBodyPalace | 신궁(身宮) 여부 | boolean |
isOriginalPalace | 래인궁 여부 | boolean |
heavenlyStem | 궁의 천간 | HeavenlyStemName |
earthlyBranch | 궁의 지지 | EarthlyBranchName |
majorStars | 주성(主星) | Star[] |
minorStars | 보조성(輔星) | Star[] |
adjectiveStars | 잡요(雜曜) | Star[] |
changsheng12 | 장생 십이신(長生十二神) | StarName |
boshi12 | 박사 십이신(博士十二神) | StarName |
jiangqian12 | 유년 장전 십이신(流年將前十二神) | StarName |
suiqian12 | 유년 세전 십이신(流年歲前十二神) | StarName |
decadal | 대한(大限) | Decadal |
ages | 소한(小限) | number[] |
SurroundedPalaces
export type SurroundedPalaces = {
target: IFunctionalPalace;
opposite: IFunctionalPalace;
wealth: IFunctionalPalace;
career: IFunctionalPalace;
};삼방사정(三方四正) 객체를 정의합니다.
| 속성 | 설명 | 타입 |
|---|---|---|
target | 본궁 | IFunctionalPalace |
opposite | 대궁 | IFunctionalPalace |
wealth | 재백 위치 | IFunctionalPalace |
career | 관록 위치 | IFunctionalPalace |
운한(運限)
HoroscopeItem
export type HoroscopeItem = {
index: number;
name: string;
heavenlyStem: HeavenlyStemName;
earthlyBranch: EarthlyBranchName;
palaceNames: PalaceName[];
mutagen: StarName[];
stars?: Star[][];
};운한(運限) 객체를 정의합니다.
| 속성 | 설명 | 타입 |
|---|---|---|
index | 해당 궁의 인덱스 | number |
name ^1.2.3 | 운한의 이름 | string |
heavenlyStem | 운한의 천간 | HeavenlyStemName |
earthlyBranch | 운한의 지지 | EarthlyBranchName |
palaceNames | 운한의 십이궁 | PalaceName[] |
mutagen | 사화성(四化星) | StarName[] |
stars | 유요(流曜) | Star[][] |
Decadal
export type Decadal = {
range: [number, number];
heavenlyStem: HeavenlyStemName;
earthlyBranch: EarthlyBranchName;
};명반의 대한(大限) 데이터를 정의합니다. 이 타입은 주로 Palace에서 사용합니다.
| 속성 | 설명 | 타입 |
|---|---|---|
range | 대한의 시작·종료 연령 [시작 연령, 종료 연령] | [number, number] |
heavenlyStem | 대한의 천간 | HeavenlyStemName |
earthlyBranch | 대한의 지지 | EarthlyBranchName |
DecadalHoroscope
export type DecadalHoroscope = HoroscopeItem & {
palaceName: PalaceName;
ageRange: [number, number];
yearRange: [number, number];
};decadalList()이 반환하는 대한(大限) 목록 항목을 정의합니다.
| 속성 | 설명 | 타입 |
|---|---|---|
palaceName | 대한이 위치한 본명반의 궁 | PalaceName |
ageRange | 대한 시작·종료 시점의 세는나이 | [number, number] |
yearRange | 대한의 시작·종료 연도 | [number, number] |
이 유형에는 HoroscopeItem의 모든 속성도 포함되어 있습니다.
YearlyHoroscope
export type YearlyHoroscope = HoroscopeItem & {
age: number;
year: number;
};yearlyList()이 반환하는 유년(流年) 목록 항목을 정의합니다.
| 속성 | 설명 | 타입 |
|---|---|---|
age | 유년에 해당하는 세는나이 | number |
year | 유년의 연도 | number |
이 유형에는 HoroscopeItem의 모든 속성도 포함되어 있습니다.
MonthlyHoroscope
export type MonthlyHoroscope = YearlyHoroscope & {
month: number;
isLeapMonth: boolean;
part: 'normal' | 'first' | 'second';
dayRange: [number, number];
};monthlyList()이 반환하는 유월(流月) 목록 항목을 정의합니다.
| 속성 | 설명 | 타입 |
|---|---|---|
month | 음력의 달, 첫 번째 달은 1 | number |
isLeapMonth | 윤달인가요? | boolean |
part | 일반 월, 윤달 전반부 또는 윤달 후반부 | 'normal' | 'first' | 'second' |
dayRange | 이 항목에 해당하는 음력 날짜 범위 | [number, number] |
이 유형에는 YearlyHoroscope 및 HoroscopeItem의 모든 속성이 포함되어 있습니다.
Horoscope
export type Horoscope = {
lunarDate: string;
solarDate: string;
decadal: HoroscopeItem;
age: {
index: number;
nominalAge: number;
};
yearly: HoroscopeItem & {
yearlyDecStar: {
jiangqian12: StarName[];
suiqian12: StarName[]
}
};
monthly: HoroscopeItem;
daily: HoroscopeItem;
hourly: HoroscopeItem;
};운한(運限) 객체를 정의하며, 대한(大限), 유년(流年), 유월(流月), 유일(流日), 유시(流時) 데이터를 포함합니다.
| 속성 | 설명 | 타입 |
|---|---|---|
lunarDate | 음력 날짜 | string |
solarDate | 그레고리력 날짜 | string |
decadal | 대한(大限) | HoroscopeItem |
age | 소한(小限) | { index: number, nominalAge: number } |
yearly | 유년(流年) | HoroscopeItem & { yearlyDecStar: { jiangqian12: StarName[]; suiqian12: StarName[] } } |
monthly | 유월(流月) | HoroscopeItem |
daily | 유일(流日) | HoroscopeItem |
hourly | 유시(流時) | HoroscopeItem |
명반(星盤)
Astrolabe
export type Astrolabe = {
gender: GenderName;
solarDate: string;
lunarDate: string;
chineseDate: string;
rawDates: {
lunarDate: LunarDate;
chineseDate: HeavenlyStemAndEarthlyBranchDate;
};
time: string;
timeRange: string;
sign: string;
zodiac: string;
earthlyBranchOfSoulPalace: EarthlyBranchName;
earthlyBranchOfBodyPalace: EarthlyBranchName;
soul: StarName;
body: StarName;
fiveElementsClass: FiveElementsClassName;
palaces: IFunctionalPalace[];
};명반(星盤) 객체를 정의합니다.
| 속성 | 설명 | 타입 |
|---|---|---|
gender | 성별 ^2.0.3 | GenderName |
solarDate | 그레고리력 날짜 | string |
lunarDate | 음력 날짜 | string |
chineseDate | 간지로 나타낸 날짜 | string |
rawDates | 이후 내부 메서드에서 사용할 원본 날짜 데이터 | { lunarDate: LunarDate, chineseDate: HeavenlyStemAndEarthlyBranchDate } |
time | 시진(時辰) | string |
timeRange | 시진에 대응하는 시각 범위 | string |
sign | 별자리 | string |
zodiac | 띠 | string |
earthlyBranchOfSoulPalace | 명궁의 지지 | EarthlyBranchName |
earthlyBranchOfBodyPalace | 신궁의 지지 | EarthlyBranchName |
soul | 명주성(命主星) | StarName |
body | 신주성(身主星) | StarName |
fiveElementsClass | 오행국(五行局) | FiveElementsClassName |
palaces | 십이궁 데이터 | IFunctionalPalace[] |
설정과 플러그인 ^2.3.0
ConfigMutagens
전역 구성에서 사화(四化) 매개변수를 정의합니다.
type ConfigMutagens = Partial<Record<HeavenlyStemName, StarName[]>>;ConfigBrightness
전역 구성에서 밝기 매개변수를 정의합니다.
type ConfigBrightness = Partial<Record<StarName, Brightness[]>>;Config
명반 계산 설정 객체를 정의합니다. astro.config()로 이후 생성할 명반의 기본값을 설정하거나, withOptions({ config })로 지금 생성하는 명반에만 다른 설정을 적용할 수 있습니다. 이미 생성된 명반은 생성 당시의 설정을 유지합니다(^2.6.2).
type Config = {
// 星曜四化配置
mutagens?: ConfigMutagens;
// 星曜亮度配置
brightness?: ConfigBrightness;
// 年分割点配置
yearDivide?: 'normal' | 'exact';
// 运限分割点配置(^v2.4.3)
horoscopeDivide?: 'normal' | 'exact';
// 小限分割点配置,normal为以自然年分界,birthday为生日分界(^v2.4.5)
// 默认为 normal
ageDivide?: 'normal' | 'birthday';
// 晚子时配置,current 时晚子时算当日,forward 时晚子时算次日(^v2.5.2)
// 默认为 forward
dayDivide?: 'current' | 'forward';
// 安星方法,default 为通行版本,zhongzhou 为中州派版本(^v2.5.0)
// 默认为 default
algorithm?: 'default' | 'zhongzhou';
};yearDivide와 horoscopeDivide의 값이 normal이면 음력 정월 초하루를 연도의 경계로 사용하고, exact이면 절기인 입춘(立春)을 경계로 사용합니다.
dayDivide는 만자시(晚子時)(timeIndex가 12인 경우)를 어느 날짜에 포함할지만 결정합니다. forward는 다음 날에, current는 당일에 포함합니다.
AstroType ^2.5.0
중주파(中州派) 명반의 타입을 정의합니다.
type AstroType = 'heaven' | 'earth' | 'human';| 값 | 설명 |
|---|---|
heaven | 천반, 기본값 |
earth | 지반: 신궁의 간지로 오행국을 정하고, 신궁을 명궁으로 삼습니다. |
human | 인반: 복덕궁의 간지로 오행국을 정하고, 복덕궁을 명궁으로 삼습니다. |
Plugin
플러그인 타입을 정의합니다. 플러그인은 하나의 함수입니다.
type Plugin = () => void;팁
플러그인 함수는 this 매개변수를 암묵적으로 받으며, 그 타입은 T extends FunctionalAstrolabe입니다. 만드는 방법은 플러그인을 참고하세요.