Skip to content
이 페이지의 내용

타입 정의 ​

서문 ​

이 페이지에서는 iztro의 타입 정의를 설명합니다. 국제화 타입은 i18n에 정의되어 있으며, 나머지 타입은 types에 정의되어 있습니다.

다음 코드로 국제화 타입을 가져올 수 있습니다:

ts
import { HeavenlyStemName } from "iztro/lib/i18n";

다른 타입은 다음과 같이 가져옵니다:

ts
import { Palace } from "iztro/lib/data/types";

팁

번역이나 타입 정의에서 오류나 부적절한 내용을 발견하면 이슈를 등록해 주세요. 감사합니다!

국제화 타입 ​

iztro는 다국어 입력과 출력을 지원하기 위해 매개변수와 결과 값에 여러 언어의 이름을 정의합니다. 입력값은 지원되는 어떤 언어로도 지정할 수 있습니다. 예를 들어 HeavenlyStemName에는 甲, 갑, jia를 전달할 수 있습니다.

예를 들어 getHoroscopeStar()를 호출할 때 천간(天干)과 지지(地支)의 중국어 이름을 인수로 전달할 수 있습니다:

ts
import { getHoroscopeStar } from "iztro/lib/star";

getHoroscopeStar("甲", "子", "decadal");

다른 지원 언어의 이름을 인수로 전달하거나, 한 번의 호출에서 여러 언어를 섞어 사용할 수도 있습니다:

ts
import { getHoroscopeStar } from "iztro/lib/star";

getHoroscopeStar("갑", "zi", "decadal");

입력에 어떤 언어를 사용하든 출력은 지정한 언어로 통일됩니다. 메서드를 호출하기 전에 출력 언어를 설정하세요:

ts
import { setLanguage } from "iztro/lib/i18n";

setLanguage("ko-KR");

const horoscopeStar = getHoroscopeStar("甲", "zi", "decadal");

이때 horoscopeStar의 출력 결과는 한국어가 됩니다.

horoscopeStar 출력 결과
json
[
  [
    {
      "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 ​

자미두수(紫微斗數)의 성요(星曜) 이름을 정의하며, 유요(流曜)도 포함합니다.

^2.6.1 무곡(武曲)과 세파(歲破)의 영어 이름은 각각 warrior와 breaker입니다.

紫微 | 天机 | 太阳 | 武曲 | 天同 | 廉贞 | 天府 | 太阴 | 贪狼 | 巨门 | 天相 | 天梁 | 七杀 | 破军 | 左辅 | 右弼 | 文昌 | 文曲 | 禄存 | 天马 | 擎羊 | 陀罗 | 火星 | 铃星 | 天魁 | 天钺 | 地空 | 地劫 | 劫杀 | 天空 | 天刑 | 天姚 | 解神 | 阴煞 | 天喜 | 天官 | 天福 | 天哭 | 天虚 | 龙池 | 凤阁 | 红鸾 | 孤辰 | 寡宿 | 蜚廉 | 破碎 | 台辅 | 封诰 | 天巫 | 天月 | 三台 | 八座 | 恩光 | 天贵 | 天才 | 天寿 | 截空 | 旬中 | 旬空 | 空亡 | 截路 | 月德 | 天伤 | 天使 | 天厨 | 长生 | 沐浴 | 冠带 | 临官 | 帝旺 | 衰 | 病 | 死 | 墓 | 绝 | 胎 | 养 | 博士 | 力士 | 青龙 | 小耗 | 将军 | 奏书 | 飞廉 | 喜神 | 病符 | 大耗 | 岁破 | 伏兵 | 官府 | 岁建 | 晦气 | 丧门 | 贯索 | 官符 | 龙德 | 白虎 | 天德 | 吊客 | 将星 | 攀鞍 | 岁驿 | 息神 | 华盖 | 劫煞 | 灾煞 | 天煞 | 指背 | 咸池 | 月煞 | 亡神 | 运魁 | 运钺 | 运昌 | 运曲 | 运鸾 | 运喜 | 运禄 | 运羊 | 运陀 | 运马 | 流魁 | 流钺 | 流昌 | 流曲 | 流鸾 | 流喜 | 流禄 | 流羊 | 流陀 | 流马 | 年解 | 月魁 | 月钺 | 月昌 | 月曲 | 月鸾 | 月喜 | 月禄 | 月羊 | 月陀 | 月马 | 日魁 | 日钺 | 日昌 | 日曲 | 日鸾 | 日喜 | 日禄 | 日羊 | 日陀 | 日马 | 时魁 | 时钺 | 时昌 | 时曲 | 时鸾 | 时喜 | 时禄 | 时羊 | 时陀 | 时马

동명의 별칭 성요(星曜) ^2.6.1

서로 다른 성요(星曜)의 한국어 또는 베트남어 이름이 같을 때는 한자가 붙은 구분용 별칭을 입력해 원하는 성요를 정확히 지정할 수 있습니다. 이 별칭은 입력에만 사용하며, 번역된 출력에는 기존 이름이 표시됩니다.

  • 한국어: 천상(天相), 천상(天傷), 천월(天鉞), 천월(天月), 겁살(劫殺), 겁살(劫煞), 비렴(蜚廉), 비렴(飛廉), 관부(官府), 관부(官符)
  • 베트남어: Kiếp Sát(劫殺), Kiếp Sát(劫煞), Phi Liêm(蜚廉), Phi Liêm(飛廉)

FiveElementsClassName ​

자미두수(紫微斗數)에서 오행국(五行局)의 이름을 정의합니다.

水二局 | 木三局 | 金四局 | 土五局 | 火六局


GenderName ​

성별의 이름을 정의합니다.

男 | 女

공통 타입 ​

Language ​

ts
export type Language = `zh-CN` | `zh-TW` | `en-US` | `ko-KR` | `ja-JP` | `vi-VN`;

지원되는 언어가 정의됩니다. 현재 지원되는 언어는 다음과 같습니다.

  • zh-CN: 중국어 간체
  • zh-TW: 중국어(번체)
  • en-US:English
  • ko-KR:한국어
  • ja-JP: 일본어
  • vi-VN: 베트남어

Scope ​

ts
export type Scope = "origin" | "decadal" | "yearly";

성요(星曜)의 적용 범위를 정의하여 본명 성요(本命星曜)와 유요(流曜)를 구분합니다:

  • origin: 본명 성요(本命星曜)
  • decadal: 대한 성요(大限星曜)
  • yearly: 유년 성요(流年星曜)

StarType ​

ts
export type StarType =
  | "major"
  | "soft"
  | "tough"
  | "adjective"
  | "flower"
  | "helper"
  | "lucun"
  | "tianma";

성요(星曜)의 유형을 정의합니다. 도화성(桃花星)과 해신(解神)(해신(년)(年解) 포함)은 잡요(雜曜)이지만 명반 해석에서 특별한 의미가 있어 별도로 분류합니다. 두 보조 성요인 록존(祿存)과 천마(天馬)도 특수한 역할이 있어 각각 따로 분류합니다:

  • major: 주성(主星)
  • soft: 길성(吉星)
  • tough: 살성(煞星)
  • adjective: 잡요(雜曜)
  • flower: 도화성(桃花)
  • helper:해신(解神)
  • lucun:록존(祿存)
  • tianma:천마(天馬)

성요(星曜) ​

Star ​

ts
export type Star = {
  name: StarName;
  type: StarType;
  scope: Scope;
  brightness?: Brightness;
  mutagen?: Mutagen;
};

성요(星曜) 객체를 정의합니다.

속성설명타입
name성요 이름StarName
type성요 타입StarType
scope범위Scope
brightness별의 밝기Brightness
mutagen사화(四化)Mutagen

궁(宮位) ​

SoulAndBody ​

ts
export type SoulAndBody = {
  soulIndex: number;
  bodyIndex: number;
  heavenlyStemOfSoul: HeavenlyStemName;
  earthlyBranchOfSoul: EarthlyBranchName;
};

명궁(命宮) 및 신궁(身宮) 위치 정보가 정의됩니다.

속성설명타입
soulIndex명궁 인덱스number
bodyIndex신궁 인덱스number
heavenlyStemOfSoul명궁의 천간HeavenlyStemName
earthlyBranchOfSoul명궁의 지지EarthlyBranchName

Palace ​

ts
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 ​

ts
export type SurroundedPalaces = {
  target: IFunctionalPalace;
  opposite: IFunctionalPalace;
  wealth: IFunctionalPalace;
  career: IFunctionalPalace;
};

삼방사정(三方四正) 객체를 정의합니다.

속성설명타입
target본궁IFunctionalPalace
opposite대궁IFunctionalPalace
wealth재백 위치IFunctionalPalace
career관록 위치IFunctionalPalace

운한(運限) ​

HoroscopeItem ​

ts
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 ​

ts
export type Decadal = {
  range: [number, number];
  heavenlyStem: HeavenlyStemName;
  earthlyBranch: EarthlyBranchName;
};

명반의 대한(大限) 데이터를 정의합니다. 이 타입은 주로 Palace에서 사용합니다.

속성설명타입
range대한의 시작·종료 연령 [시작 연령, 종료 연령][number, number]
heavenlyStem대한의 천간HeavenlyStemName
earthlyBranch대한의 지지EarthlyBranchName

DecadalHoroscope ​

ts
export type DecadalHoroscope = HoroscopeItem & {
  palaceName: PalaceName;
  ageRange: [number, number];
  yearRange: [number, number];
};

decadalList()이 반환하는 대한(大限) 목록 항목을 정의합니다.

속성설명타입
palaceName대한이 위치한 본명반의 궁PalaceName
ageRange대한 시작·종료 시점의 세는나이[number, number]
yearRange대한의 시작·종료 연도[number, number]

이 유형에는 HoroscopeItem의 모든 속성도 포함되어 있습니다.


YearlyHoroscope ​

ts
export type YearlyHoroscope = HoroscopeItem & {
  age: number;
  year: number;
};

yearlyList()이 반환하는 유년(流年) 목록 항목을 정의합니다.

속성설명타입
age유년에 해당하는 세는나이number
year유년의 연도number

이 유형에는 HoroscopeItem의 모든 속성도 포함되어 있습니다.


MonthlyHoroscope ​

ts
export type MonthlyHoroscope = YearlyHoroscope & {
  month: number;
  isLeapMonth: boolean;
  part: 'normal' | 'first' | 'second';
  dayRange: [number, number];
};

monthlyList()이 반환하는 유월(流月) 목록 항목을 정의합니다.

속성설명타입
month음력의 달, 첫 번째 달은 1number
isLeapMonth윤달인가요?boolean
part일반 월, 윤달 전반부 또는 윤달 후반부'normal' | 'first' | 'second'
dayRange이 항목에 해당하는 음력 날짜 범위[number, number]

이 유형에는 YearlyHoroscope 및 HoroscopeItem의 모든 속성이 포함되어 있습니다.


Horoscope ​

ts
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 ​

ts
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.3GenderName
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 ​

전역 구성에서 사화(四化) 매개변수를 정의합니다.

ts
type ConfigMutagens = Partial<Record<HeavenlyStemName, StarName[]>>;

ConfigBrightness ​

전역 구성에서 밝기 매개변수를 정의합니다.

ts
type ConfigBrightness = Partial<Record<StarName, Brightness[]>>;

Config ​

명반 계산 설정 객체를 정의합니다. astro.config()로 이후 생성할 명반의 기본값을 설정하거나, withOptions({ config })로 지금 생성하는 명반에만 다른 설정을 적용할 수 있습니다. 이미 생성된 명반은 생성 당시의 설정을 유지합니다(^2.6.2).

ts
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 ​

중주파(中州派) 명반의 타입을 정의합니다.

ts
type AstroType = 'heaven' | 'earth' | 'human';
값설명
heaven천반, 기본값
earth지반: 신궁의 간지로 오행국을 정하고, 신궁을 명궁으로 삼습니다.
human인반: 복덕궁의 간지로 오행국을 정하고, 복덕궁을 명궁으로 삼습니다.

Plugin ​

플러그인 타입을 정의합니다. 플러그인은 하나의 함수입니다.

ts
type Plugin = () => void;

팁

플러그인 함수는 this 매개변수를 암묵적으로 받으며, 그 타입은 T extends FunctionalAstrolabe입니다. 만드는 방법은 플러그인을 참고하세요.

© 2025 iztro.com All rights reserved.
관련 사이트: 紫微派