型定義
はじめに
このページでは iztro の型定義を説明します。国際化された型は i18n に、それ以外の型は types に定義されています。
次のコードで 国際化された型 をインポートできます。
import { HeavenlyStemName } from "iztro/lib/i18n";他の型をインポートする場合は、次のようにします。
import { Palace } from "iztro/lib/data/types";ヒント
翻訳や型定義に誤りや不適切な点があれば、Issueを作成してお知らせください。ご協力ありがとうございます。
国際化された型
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 の場合は旧暦の正月1日を、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 です。作成方法はプラグインを参照してください。