Skip to content
このページの内容

型定義 ​

はじめに ​

このページでは iztro の型定義を説明します。国際化された型は i18n に、それ以外の型は types に定義されています。

次のコードで 国際化された型 をインポートできます。

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

他の型をインポートする場合は、次のようにします。

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

ヒント

翻訳や型定義に誤りや不適切な点があれば、Issueを作成してお知らせください。ご協力ありがとうございます。

国際化された型 ​

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旧暦の月。正月を1とします。number
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 の場合は旧暦の正月1日を、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.
関連サイト: 紫微派