enumerate
import { listProvinces, listAmphures, listTambons } from 'thaizip'
ฟังก์ชันทั้งสามตัวนี้ไม่ต้องมี query ข้อความ ใช้สำหรับสร้าง dropdown แบบลดหลั่น (จังหวัด → อำเภอ → ตำบล) โดยอ้างอิงจาก grouping (byProvince/byAmphure) ที่ถูกสร้างไว้ล่วงหน้าตอนสร้าง index แล้ว จึงไม่ต้องสแกน records ทั้งหมดทุกครั้งที่เรียก
listProvinces
หัวข้อ “listProvinces”function listProvinces(index: TrigramIndex): ProvinceSummary[]พารามิเตอร์
หัวข้อ “พารามิเตอร์”| ชื่อ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
index | TrigramIndex | — (จำเป็น) | ดัชนีที่ใช้ดึงรายชื่อจังหวัด |
คืนค่า
หัวข้อ “คืนค่า”ProvinceSummary[] — จังหวัดทั้ง 77 จังหวัด (ตามชุดข้อมูล default) แบบไม่ซ้ำ เรียงตามชื่อภาษาไทยด้วย Intl.Collator('th')
type ProvinceSummary = { id: number nameTh: string nameEn: string}ตัวอย่าง
หัวข้อ “ตัวอย่าง”import { listProvinces } from 'thaizip'
const provinces = listProvinces(index) // 77 จังหวัด เรียงตามชื่อไทยlistAmphures
หัวข้อ “listAmphures”function listAmphures(index: TrigramIndex, provinceId: number): AmphureSummary[]พารามิเตอร์
หัวข้อ “พารามิเตอร์”| ชื่อ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
index | TrigramIndex | — (จำเป็น) | ดัชนีที่ใช้ดึงรายชื่ออำเภอ |
provinceId | number | — (จำเป็น) | id ของจังหวัด (จาก ProvinceSummary.id) |
คืนค่า
หัวข้อ “คืนค่า”AmphureSummary[] — อำเภอ/เขตทั้งหมดในจังหวัดนั้นแบบไม่ซ้ำ เรียงตามชื่อภาษาไทย คืนค่าอาเรย์ว่าง [] ถ้า provinceId ไม่มีอยู่จริง (เช่นค่า 0 ตอนยังไม่ได้เลือก)
type AmphureSummary = { id: number nameTh: string nameEn: string provinceId: number}ตัวอย่าง
หัวข้อ “ตัวอย่าง”import { listAmphures } from 'thaizip'
listAmphures(index, 1) // อำเภอ/เขตทั้งหมดในกรุงเทพมหานครlistTambons
หัวข้อ “listTambons”function listTambons(index: TrigramIndex, amphureId: number): TambonSummary[]พารามิเตอร์
หัวข้อ “พารามิเตอร์”| ชื่อ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
index | TrigramIndex | — (จำเป็น) | ดัชนีที่ใช้ดึงรายชื่อตำบล |
amphureId | number | — (จำเป็น) | id ของอำเภอ (จาก AmphureSummary.id) |
คืนค่า
หัวข้อ “คืนค่า”TambonSummary[] — ตำบล/แขวงทั้งหมดในอำเภอนั้น เรียงตามชื่อภาษาไทย พร้อม zipCode ติดมากับแต่ละรายการ คืนค่าอาเรย์ว่าง [] ถ้า amphureId ไม่มีอยู่จริง
type TambonSummary = { id: number nameTh: string nameEn: string amphureId: number zipCode: string}ตัวอย่าง
หัวข้อ “ตัวอย่าง”import { listTambons } from 'thaizip'
listTambons(index, 1001) // ตำบล/แขวงทั้งหมดในอำเภอนั้น พร้อม zipCodeหมายเหตุร่วม
หัวข้อ “หมายเหตุร่วม”- ทั้งสามฟังก์ชันคืนค่าอาเรย์ว่าง
[]เสมอสำหรับ id ที่ไม่รู้จัก — ไม่โยน exception จึงเขียน UI ที่ต้อง reset ตัวเลือกลูกเมื่อเปลี่ยนตัวเลือกแม่ได้ง่าย - แต่ละ
byAmphureentry แม็พกับตำบลเพียงรายการเดียว ดังนั้นlistTambonsไม่ต้อง deduplicate เหมือนlistProvinces/listAmphures - ถ้า
indexที่ส่งเข้ามาไม่มีbyProvince/byAmphure(เช่น index รูปแบบเก่าที่สร้างขึ้นเอง) ทั้งสามฟังก์ชันจะ fallback ไปสแกนindex.recordsทั้งหมดแทน