{
"extends": "astro/tsconfigs/base",
"compilerOptions": {
"strict": true,
"baseUrl": ".",
"paths": {
"@/*": [
"./src/*"
]
},
"jsx": "preserve",
"jsxImportSource": "preact",
"moduleResolution": "node",
"esModuleInterop": true,
"resolveJsonModule": true,
"isolatedModules": true,
"allowJs": true,
"skipLibCheck": true
},
"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.astro"],
"exclude": ["node_modules", "dist"]
}
สาเหตุที่ต้องมีก็เพราะว่า Astro ไม่ได้ Provided ให้น่ะ
-
compilerOptions:
strict: เปิดใช้งานโหมด strict type-checking เพื่อให้โค้ดมีความปลอดภัยและลดข้อผิดพลาด.
baseUrl: ตั้งค่า . เพื่อให้ paths ทำงานง่ายขึ้น.
paths: กำหนด alias เพื่อใช้งาน path ที่เข้าใจง่าย เช่น:
@components/* ชี้ไปที่ src/components/*
@layouts/* ชี้ไปที่ src/layouts/*
jsx และ jsxImportSource: ใช้ preserve เพื่อรองรับ JSX syntax (เช่น Preact).
moduleResolution: ใช้ node เพื่อให้ตรงกับรูปแบบการ resolve module ที่ใช้งานทั่วไป.
esModuleInterop: เปิดให้ใช้งาน CommonJS และ ESModule ได้ร่วมกัน.
resolveJsonModule: ให้ TypeScript รองรับการ import ไฟล์ JSON ได้โดยตรง.
isolatedModules: เพิ่มความเข้ากันได้เมื่อใช้งาน TypeScript กับโมดูลแบบแยกกัน.
allowJs: อนุญาตให้ใช้ไฟล์ .js ร่วมกับ TypeScript.
skipLibCheck: ข้ามการตรวจสอบ .d.ts ในไลบรารีเพื่อเพิ่มความเร็วในการคอมไพล์.
-
include:
- ระบุว่า TypeScript จะทำงานเฉพาะในไฟล์
src/**/*.ts, src/**/*.tsx, และ src/**/*.astro.
สร้าง end.d.ts เพื่อสร้าง env ให้ ts.config ไม่ error
/// <reference types="astro/client" />
-
exclude:
- ยกเว้นโฟลเดอร์
node_modules และ dist จากการตรวจสอบ TypeScript.
ASTRO SHADCN ที่นี่