Skip to content
頁內導航

宮位 ​

前言 ​

紫微斗數中一共有 十二 個宮位,叫做 十二人事宮,囊括了與人有關的其他人和事物,這十二宮按順序分別是 命宮、兄弟宮、夫妻宮、子女宮、財帛宮、疾厄宮、遷移宮、僕役宮、官祿宮、田宅宮、福德宮、父母宮。除了展示在 星盤 裏的十二宮以外,紫微斗數還有三個隱藏宮位,它們分別是 身宮、來因宮、暗合宮。每一個宮位有著它特殊的意義,但本頁不詳細展開來敘述。如果你對紫微斗數的宮位沒有概念,或者想深入研究,可以點擊 宮位系統 查看詳細資料。與宮位地支順時針排列相反,宮位名稱是按逆時針排列的。如下面表格所示:

巳 田宅午 官祿未 僕役申 遷移
辰 福德中宮酉 疾厄
卯 父母戌 財帛
寅 命宮丑 兄弟子 夫妻亥 子女

以上表格只是一個例子,命宮 的位置會根據你的 出生日期 和 出生時間 的不同而不同,它可能出現在上述任何一個宮位,但這個順序是不會變的。

宮位其實是 宮 和 位 兩個概念組成的,通過 出生日期 和 出生時間 計算出來的,叫 宮,所以你星盤中的 財帛宮 位置在本命盤中是固定的,如果你不知道什麽叫 本命盤,我們強烈建議你點擊 基礎知識掃盲 學習。位 則是一個 相對 位置,比如 夫妻宮 的 財帛位 是 遷移宮。這聽起來有些繞,好消息是,你不需要記憶這些燒腦的信息,只需要有這麽一個概念就可以了。

功能類定義 ​

開發建議

因為宮位是基於星盤而存在的,所以我們並不推薦你手動 new 一個宮位對象,而是從星盤靜態方法返回的對象中獲取宮位。星盤的 palaces 屬性包含了十二宮的數據,為了和地支的順序保持一致,它是從 寅宮 開始按照地支順序順時針排列的。

ts
import { astro } from "iztro";

const astrolabe = astro.astrolabeBySolarDate("2000-8-16", 2, "女", true, "zh-CN");

你可以有幾種方式從上述 astrolabe 變量裏獲取到目標宮位,請根據實際需求使用:

  1. 通過 palaces 的下標獲取

    ts
    // 獲取卯宮宮位
    const palace = astrolabe.palaces[1];
  2. 通過 FunctionalAstrolabe 類的 palace() 方法傳入宮位 索引 獲取

    ts
    // 獲取卯宮宮位
    const palace = astrolabe.palace(1);
  3. 通過 FunctionalAstrolabe 類的 palace() 方法傳入宮位 名稱 獲取

    ts
    // 獲取命宮
    const palace = astrolabe.palace("命宮");

FunctionalPalace ​


implements IFunctionalPalace extends Palace

該類所有屬性都是繼承自 Palace,然後在接口內定義了一些方法用於對星曜進行分析。

  • 接口定義

    ts
    interface IFunctionalPalace extends Palace {
      toJSON: () => Palace;
      has: (stars: StarName[]) => boolean;
      notHave: (stars: StarName[]) => boolean;
      hasOneOf: (stars: StarName[]) => boolean;
      hasMutagen: (mutagen: Mutagen): boolean;
      notHaveMutagen: (mutagen: Mutagen): boolean;
      isEmpty: (excludeStars?: StarName[]) => boolean;
      astrolabe: () => IFunctionalAstrolabe | undefined;
      fliesTo: (to: number | PalaceName, withMutagens: Mutagen | Mutagen[]) => boolean;
      fliesOneOfTo: (to: number | PalaceName, withMutagens: Mutagen[]) => boolean;
      notFlyTo: (to: number | PalaceName, withMutagens: Mutagen | Mutagen[]) => boolean;
      selfMutaged: (withMutagens: Mutagen | Mutagen[]) => boolean;
      selfMutagedOneOf: (withMutagens?: Mutagen[]) => boolean;
      notSelfMutaged: (withMutagens?: Mutagen | Mutagen[]) => boolean;
      mutagedPlaces: () => (IFunctionalPalace | undefined)[];
    }
  • 屬性

    參考 Palace

  • 方法

    toJSON() ^2.6.0 ​

    • 用途

      將功能宮位轉換為普通 JSON 對象。返回結果不包含分析方法和關聯星盤等運行時引用;循環引用會被安全忽略。

    • 定義

      ts
      type toJSON = () => Palace;
    • 參數

      無

    • 返回值

      Palace

    • 示例

      ts
      const data = astrolabe.palace("命宮")?.toJSON();

    has() ^1.0.0 ​

    • 用途

      判斷某個宮位內是否有傳入的 星曜,要 所有 星曜 都在 宮位內才會返回 true

    • 定義

      ts
      type has = (stars: StarName[]) => boolean;
    • 參數

      參數類型是否必填默認值說明
      starsStarName[]true-星曜名稱,可以包含主星、輔星、雜曜
    • 返回值

      boolean

    • 示例

      如果你想查看 命宮 是否有 紫微星 和 右弼星

      ts
      const palace = astrolabe.palace("命宮");
      const result = palace.has(["紫微", "右弼"]);

      當然你也可以使用 鏈式調用 來簡化代碼

      ts
      const result = astrolabe.palace("命宮").has(["紫微", "右弼"]);

    notHave() ^1.0.0 ​

    • 用途

      判斷某個宮位內是否沒有傳入的 星曜,要所有星曜 都不在 宮位內才會返回 true

    • 定義

      ts
      type notHave = (stars: StarName[]) => boolean;
    • 參數

      參數類型是否必填默認值說明
      starsStarName[]true-星曜名稱,可以包含主星、輔星、雜曜
    • 返回值

      boolean

    • 示例

      如果你想查看 命宮 是否沒有 地空星 和 地劫星

      ts
      const palace = astrolabe.palace("命宮");
      const result = palace.notHave(["地空", "地劫"]);

      當然你也可以使用 鏈式調用 來簡化代碼

      ts
      const result = astrolabe.palace("命宮").notHave(["地空", "地劫"]);

    hasOneOf() ^1.0.0 ​

    • 用途

      判斷某個宮位內是否有傳入 星曜 的其中一個,只要 命中一個 就會返回 true

    • 定義

      ts
      type hasOneOf = (stars: StarName[]) => boolean;
    • 參數

      參數類型是否必填默認值說明
      starsStarName[]true-星曜名稱,可以包含主星、輔星、雜曜
    • 返回值

      boolean

    • 示例

      如果你想查看 命宮 是否有 天魁星 或 天鉞星

      ts
      const palace = astrolabe.palace("命宮");
      const result = palace.hasOneOf(["天魁", "天鉞"]);

      當然你也可以使用 鏈式調用 來簡化代碼

      ts
      const result = astrolabe.palace("命宮").hasOneOf(["天魁", "天鉞"]);

    hasMutagen() ^1.2.0 ​

    • 用途

      判斷宮位內是否有生年四化

    • 定義

      ts
      type hasMutagen = (mutagen: Mutagen) => boolean;
    • 參數

      參數類型是否必填默認值說明
      mutagenMutagentrue-四化名稱【祿|權|科|忌】
    • 返回值

      boolean

    • 示例

      如果你想查看 命宮 是否有 化祿

      ts
      const palace = astrolabe.palace("命宮");
      const result = palace.hasMutagen("祿");

      當然你也可以使用 鏈式調用 來簡化代碼

      ts
      const result = astrolabe.palace("命宮").hasMutagen("祿");

    notHaveMutagen() ^1.2.0 ​

    • 用途

      判斷宮位內是否沒有生年四化

    • 定義

      ts
      type notHaveMutagen = (mutagen: Mutagen) => boolean;
    • 參數

      參數類型是否必填默認值說明
      mutagenMutagentrue-四化名稱【祿|權|科|忌】
    • 返回值

      boolean

    • 示例

      如果你想查看 命宮 是不是沒有 化忌

      ts
      const palace = astrolabe.palace("命宮");
      const result = palace.notHaveMutagen("忌");

      當然你也可以使用 鏈式調用 來簡化代碼

      ts
      const result = astrolabe.palace("命宮").notHaveMutagen("忌");

    isEmpty() ^2.0.6 ​

    • 用途

      判斷一個宮位是否為空宮(沒有主星),有些派別在宮位內有某些星曜的情況下,是不會將該宮位判斷為空宮的。所以加入一個參數來傳入星曜。

    • 定義

      ts
      type isEmpty = (excludeStars?: StarName[]) => boolean;
    • 參數

      參數類型是否必填默認值說明
      excludeStarsStarName[]false-星曜名稱數組
    • 返回值

      boolean

    astrolabe() ^2.1.0 ​

    • 用途

      獲取當前宮位所在的星盤對象。

    • 定義

      ts
      type astrolabe = () => IFunctionalAstrolabe | undefined;
    • 參數

      無

    • 返回值

    IFunctionalAstrolabe | undefined;

    fliesTo() ^2.1.0 ​

    • 用途

      判斷是否從源宮位飛化到目標宮位,四化可傳入一個數組或者一個字符串,傳入四化全部飛化到目標宮位即返回 true

    • 定義

      ts
      type fliesTo = (
        to: number | PalaceName, 
        withMutagens: Mutagen | Mutagen[]
      ) => boolean;
    • 參數

      參數類型是否必填默認值說明
      tonumber | PalaceNametrue-目標宮位索引或名稱
      withMutagensMutagen |Mutagen[]true-四化(祿、權、科、忌)
    • 返回值

      boolean

    fliesOneOfTo() ^2.1.0 ​

    • 用途

      判斷是否從源宮位飛化其中一顆四化星到目標宮位,傳入四化只要有一顆飛化到目標宮位即返回 true

    • 定義

      ts
      type fliesOneOfTo = (
        to: number | PalaceName, 
        withMutagens: Mutagen | Mutagen[]
      ) => boolean;
    • 參數

      參數類型是否必填默認值說明
      tonumber | PalaceNametrue-目標宮位索引或名稱
      withMutagensMutagen |Mutagen[]true-四化(祿、權、科、忌)
    • 返回值

      boolean

    notFlyTo() ^2.1.0 ​

    • 用途

      判斷是否沒有從源宮位飛化到目標宮位,四化可傳入一個數組或者一個字符串,傳入四化全部沒有飛化到目標宮位才返回 true

    • 定義

      ts
      type notFlyTo = (
        to: number | PalaceName, 
        withMutagens: Mutagen | Mutagen[]
      ) => boolean;
    • 參數

      參數類型是否必填默認值說明
      tonumber | PalaceNametrue-目標宮位索引或名稱
      withMutagensMutagen |Mutagen[]true-四化(祿、權、科、忌)
    • 返回值

      boolean

    selfMutaged() ^2.1.0 ​

    • 用途

      判斷宮位是否有自化,傳入四化數組時需要全部滿足才返回 true

    • 定義

      ts
      type selfMutaged = (
        withMutagens: Mutagen | Mutagen[]
      ) => boolean;
    • 參數

      參數類型是否必填默認值說明
      withMutagensMutagen |Mutagen[]true-四化(祿、權、科、忌)
    • 返回值

      boolean

    selfMutagedOneOf() ^2.1.0 ​

    • 用途

      判斷宮位是否有自化,若不傳入參數則會判斷所有四化,滿足一顆即返回 true

    • 定義

      ts
      type selfMutagedOneOf = (
        withMutagens?: Mutagen[]
      ) => boolean;
    • 參數

      參數類型是否必填默認值說明
      withMutagensMutagen[]false-四化(祿、權、科、忌)
    • 返回值

      boolean

    notSelfMutaged() ^2.1.0 ​

    • 用途

      判斷宮位是否沒有自化。如果傳入參數,則只檢查指定的四化;否則檢查全部四化。只有所檢查的四化均未在本宮自化時,才返回真。

    • 定義

      ts
      type notSelfMutaged = (
        withMutagens?: Mutagen | Mutagen[]
      ) => boolean;
    • 參數

      參數類型是否必填默認值說明
      withMutagensMutagen |Mutagen[]false-四化(祿、權、科、忌)
    • 返回值

      boolean

    mutagedPlaces() ^2.1.0 ​

    • 用途

      獲取當前宮位產生四化的4個宮位數組,下標分別對應【祿,權,科,忌】

    • 定義

      ts
      type mutagedPlaces = () => (IFunctionalPalace | undefined)[];
    • 參數

      無

    • 返回值

      (IFunctionalPalace | undefined)[]

FunctionalSurpalaces ^1.2.0 ​


implements IFunctionalSurpalaces extends SurroundedPalaces

該類所有屬性都是繼承自 SurroundedPalaces,然後在接口內定義了一些方法用於對星曜進行分析。

  • 接口定義

    ts
    interface FunctionalSurpalaces extends SurroundedPalaces {
      toJSON: () => SurroundedPalaces;
      have: (stars: StarName[]) => boolean;
      notHave: (stars: StarName[]) => boolean;
      haveOneOf: (stars: StarName[]) => boolean;
      haveMutagen: (mutagen: Mutagen) => boolean;
      notHaveMutagen: (mutagen: Mutagen): boolean;
    }
  • 屬性

    參考 SurroundedPalaces

  • 方法

    toJSON() ^2.6.0 ​

    • 用途

      將功能三方四正轉換為普通 JSON 對象。返回結果不包含分析方法和運行時引用;循環引用會被安全忽略。

    • 定義

      ts
      type toJSON = () => SurroundedPalaces;
    • 參數

      無

    • 返回值

      SurroundedPalaces

    • 示例

      ts
      const data = astrolabe.surroundedPalaces("命宮").toJSON();

    have() ​

    • 用途

      判斷某個宮三方四正內是否有傳入的 星曜,要 所有 星曜 都在 三方四正內才會返回 true

    • 定義

      ts
      type have = (stars: StarName[]) => boolean;
    • 參數

      參數類型是否必填默認值說明
      starsStarName[]true-星曜名稱,可以包含主星、輔星、雜曜
    • 返回值

      boolean

    • 示例

      如果你想查看 命宮 三方四正是否有 紫微星 和 右弼星

      ts
      const palaces = astrolabe.surroundedPalaces("命宮");
      const result = palaces.have(["紫微", "右弼"]);

      當然你也可以使用 鏈式調用 來簡化代碼

      ts
      const result = astrolabe.surroundedPalaces("命宮").have(["紫微", "右弼"]);

    notHave() ​

    • 用途

      判斷某個宮三方四正內是否沒有傳入的 星曜,要所有星曜 都不在 三方四正內才會返回 true

    • 定義

      ts
      type notHave = (stars: StarName[]) => boolean;
    • 參數

      參數類型是否必填默認值說明
      starsStarName[]true-星曜名稱,可以包含主星、輔星、雜曜
    • 返回值

      boolean

    • 示例

      如果你想查看 命宮 三方四正是否沒有 地空星 和 地劫星

      ts
      const palaces = astrolabe.surroundedPalaces("命宮");
      const result = palaces.notHave(["地空", "地劫"]);

      當然你也可以使用 鏈式調用 來簡化代碼

      ts
      const result = astrolabe.surroundedPalaces("命宮").notHave(["地空", "地劫"]);

    haveOneOf() ​

    • 用途

      判斷某個宮的三方四正內是否包含傳入星曜中的任意一顆;只要命中一顆便傳回 true。

    • 定義

      ts
      type haveOneOf = (stars: StarName[]) => boolean;
    • 參數

      參數類型是否必填預設值說明
      starsStarName[]true-星曜名稱,可以包含主星、輔星、雜曜
    • 傳回值

      boolean

    • 示例

      判斷 命宮 三方四正內是否有 天魁 或 天鉞:

      ts
      const result = astrolabe.surroundedPalaces("命宮").haveOneOf(["天魁", "天鉞"]);

    haveMutagen() ​

    • 用途

      判斷宮位三方四正內是否有生年四化

    • 定義

      ts
      type haveMutagen = (mutagen: Mutagen) => boolean;
    • 參數

      參數類型是否必填默認值說明
      mutagenMutagentrue-四化名稱【祿|權|科|忌】
    • 返回值

      boolean

    • 示例

      如果你想查看 命宮 三方四正是否有 化祿

      ts
      const palaces = astrolabe.surroundedPalaces("命宮");
      const result = palaces.haveMutagen("祿");

      當然你也可以使用 鏈式調用 來簡化代碼

      ts
      const result = astrolabe.surroundedPalaces("命宮").haveMutagen("祿");

    notHaveMutagen() ​

    • 用途

      判斷宮位三方四正內是否沒有生年四化

    • 定義

      ts
      type notHaveMutagen = (mutagen: Mutagen) => boolean;
    • 參數

      參數類型是否必填默認值說明
      mutagenMutagentrue-四化名稱【祿|權|科|忌】
    • 返回值

      boolean

    • 示例

      如果你想查看 命宮 三方四正是不是沒有 化忌

      ts
      const palace = astrolabe.surroundedPalaces("命宮");
      const result = palace.notHaveMutagen("忌");

      當然你也可以使用 鏈式調用 來簡化代碼

      ts
      const result = astrolabe.surroundedPalaces("命宮").notHaveMutagen("忌");

© 2025 iztro.com All rights reserved.
友情链接: 紫微派