คู่มือที่ครอบคลุมเกี่ยวกับการทำความเข้าใจและการกำหนดค่าไฟล์ tsconfig.json เพื่อการพัฒนา TypeScript ที่เหมาะสมที่สุด ครอบคลุมตัวเลือก compiler ขั้นสูงและแนวทางปฏิบัติที่ดีที่สุด
การตั้งค่า TypeScript: การควบคุมตัวเลือก Compiler ของ TSConfig อย่างเชี่ยวชาญ
ไฟล์ tsconfig.json คือหัวใจสำคัญของโปรเจ็กต์ TypeScript ใดๆ มันกำหนดวิธีการที่ TypeScript compiler (tsc) แปลงไฟล์ .ts ของคุณเป็น JavaScript ไฟล์ tsconfig.json ที่ได้รับการกำหนดค่าอย่างดีเป็นสิ่งสำคัญสำหรับการรักษาคุณภาพโค้ด การรับประกันความเข้ากันได้ในสภาพแวดล้อมที่แตกต่างกัน และการเพิ่มประสิทธิภาพกระบวนการสร้าง คู่มือที่ครอบคลุมนี้จะเจาะลึกตัวเลือก tsconfig.json ขั้นสูง ช่วยให้คุณปรับแต่งโปรเจ็กต์ TypeScript ของคุณเพื่อประสิทธิภาพและความสามารถในการบำรุงรักษาสูงสุด
ทำความเข้าใจพื้นฐาน: ทำไม TSConfig ถึงมีความสำคัญ
ก่อนที่เราจะเจาะลึกตัวเลือกขั้นสูง มาทบทวนกันว่าทำไม tsconfig.json ถึงมีความสำคัญ:
- การควบคุมการคอมไพล์: มันระบุว่าไฟล์ใดที่ควรจะรวมอยู่ในโปรเจ็กต์ของคุณ และวิธีการที่ควรจะคอมไพล์
- การตรวจสอบประเภท: มันกำหนดกฎและความเข้มงวดของการตรวจสอบประเภท ช่วยให้คุณจับข้อผิดพลาดได้ตั้งแต่เนิ่นๆ ในวงจรการพัฒนา
- การควบคุมเอาต์พุต: มันกำหนดเวอร์ชัน JavaScript เป้าหมาย ระบบโมดูล และไดเรกทอรีเอาต์พุต
- การรวม IDE: มันให้ข้อมูลที่มีค่าแก่ IDE (เช่น VS Code, WebStorm และอื่นๆ) สำหรับคุณสมบัติต่างๆ เช่น การเติมโค้ดอัตโนมัติ การเน้นข้อผิดพลาด และการปรับโครงสร้างโค้ด
หากไม่มีไฟล์ tsconfig.json ตัว TypeScript compiler จะใช้การตั้งค่าเริ่มต้น ซึ่งอาจไม่เหมาะสมสำหรับทุกโปรเจ็กต์ สิ่งนี้สามารถนำไปสู่พฤติกรรมที่ไม่คาดคิด ปัญหาความเข้ากันได้ และประสบการณ์การพัฒนาที่ไม่ดีเท่าที่ควร
การสร้าง TSConfig ของคุณ: เริ่มต้นอย่างรวดเร็ว
ในการสร้างไฟล์ tsconfig.json เพียงรันคำสั่งต่อไปนี้ในไดเรกทอรีรากของโปรเจ็กต์ของคุณ:
tsc --init
สิ่งนี้จะสร้างไฟล์ tsconfig.json พื้นฐานพร้อมตัวเลือกทั่วไปบางอย่าง จากนั้นคุณสามารถปรับแต่งไฟล์นี้ให้ตรงตามความต้องการเฉพาะของโปรเจ็กต์ของคุณ
ตัวเลือก Compiler หลัก: ภาพรวมโดยละเอียด
ไฟล์ tsconfig.json ประกอบด้วยอ็อบเจ็กต์ compilerOptions ซึ่งเป็นที่ที่คุณกำหนดค่า TypeScript compiler มาสำรวจตัวเลือกที่สำคัญและใช้บ่อยที่สุดบางส่วน:
target
ตัวเลือกนี้ระบุเวอร์ชันเป้าหมาย ECMAScript สำหรับโค้ด JavaScript ที่คอมไพล์ มันกำหนดว่า compiler จะใช้คุณสมบัติ JavaScript ใด เพื่อให้มั่นใจถึงความเข้ากันได้กับสภาพแวดล้อมเป้าหมาย (เช่น เบราว์เซอร์, Node.js) ค่าทั่วไป ได้แก่ ES5, ES6 (ES2015), ES2017, ES2018, ES2019, ES2020, ES2021, ES2022, ESNext การใช้ ESNext จะกำหนดเป้าหมายไปที่คุณสมบัติ ECMAScript ที่รองรับล่าสุด
ตัวอย่าง:
"compilerOptions": {
"target": "ES2020"
}
การกำหนดค่านี้จะสั่งให้ compiler สร้างโค้ด JavaScript ที่เข้ากันได้กับ ECMAScript 2020
module
ตัวเลือกนี้ระบุระบบโมดูลที่จะใช้ในโค้ด JavaScript ที่คอมไพล์ ค่าทั่วไป ได้แก่ CommonJS, AMD, System, UMD, ES6 (ES2015), ES2020 และ ESNext การเลือกระบบโมดูลขึ้นอยู่กับสภาพแวดล้อมเป้าหมายและตัวโหลดโมดูลที่ใช้ (เช่น Node.js, Webpack, Browserify)
ตัวอย่าง:
"compilerOptions": {
"module": "CommonJS"
}
การกำหนดค่านี้เหมาะสำหรับโปรเจ็กต์ Node.js ซึ่งโดยทั่วไปจะใช้ระบบโมดูล CommonJS
lib
ตัวเลือกนี้ระบุชุดไฟล์ไลบรารีที่จะรวมอยู่ในกระบวนการคอมไพล์ ไฟล์ไลบรารีเหล่านี้ให้คำจำกัดความประเภทสำหรับ JavaScript API และ browser API ในตัว ค่าทั่วไป ได้แก่ ES5, ES6, ES7, DOM, WebWorker, ScriptHost และอื่นๆ
ตัวอย่าง:
"compilerOptions": {
"lib": ["ES2020", "DOM"]
}
การกำหนดค่านี้รวมถึงคำจำกัดความประเภทสำหรับ ECMAScript 2020 และ DOM API ซึ่งจำเป็นสำหรับโปรเจ็กต์ที่ใช้เบราว์เซอร์
allowJs
ตัวเลือกนี้อนุญาตให้ TypeScript compiler คอมไพล์ไฟล์ JavaScript พร้อมกับไฟล์ TypeScript สิ่งนี้มีประโยชน์เมื่อทำการย้ายโปรเจ็กต์ JavaScript ไปยัง TypeScript หรือเมื่อทำงานกับโค้ดเบส JavaScript ที่มีอยู่
ตัวอย่าง:
"compilerOptions": {
"allowJs": true
}
เมื่อเปิดใช้งานตัวเลือกนี้ compiler จะประมวลผลทั้งไฟล์ .ts และ .js
checkJs
ตัวเลือกนี้เปิดใช้งานการตรวจสอบประเภทสำหรับไฟล์ JavaScript เมื่อรวมกับ allowJs จะช่วยให้ TypeScript ระบุข้อผิดพลาดประเภทที่อาจเกิดขึ้นในโค้ด JavaScript ของคุณได้
ตัวอย่าง:
"compilerOptions": {
"allowJs": true,
"checkJs": true
}
การกำหนดค่านี้ให้การตรวจสอบประเภทสำหรับทั้งไฟล์ TypeScript และ JavaScript
jsx
ตัวเลือกนี้ระบุวิธีการแปลงไวยากรณ์ JSX (ใช้ใน React และเฟรมเวิร์กอื่นๆ) ค่าทั่วไป ได้แก่ preserve, react, react-native และ react-jsx preserve จะปล่อยให้ไวยากรณ์ JSX เป็นอย่างที่เป็นอยู่ react จะแปลงเป็น React.createElement calls, react-native ใช้สำหรับการพัฒนา React Native และ react-jsx จะแปลงเป็น JSX factory functions react-jsxdev ใช้สำหรับวัตถุประสงค์ในการพัฒนา
ตัวอย่าง:
"compilerOptions": {
"jsx": "react"
}
การกำหนดค่านี้เหมาะสำหรับโปรเจ็กต์ React โดยแปลง JSX เป็น React.createElement calls
declaration
ตัวเลือกนี้สร้างไฟล์ประกาศ (.d.ts) สำหรับโค้ด TypeScript ของคุณ ไฟล์ประกาศให้ข้อมูลประเภทสำหรับโค้ดของคุณ ทำให้โปรเจ็กต์ TypeScript อื่นๆ หรือโปรเจ็กต์ JavaScript สามารถใช้โค้ดของคุณกับการตรวจสอบประเภทที่เหมาะสม
ตัวอย่าง:
"compilerOptions": {
"declaration": true
}
การกำหนดค่านี้จะสร้างไฟล์ .d.ts พร้อมกับไฟล์ JavaScript ที่คอมไพล์
declarationMap
ตัวเลือกนี้สร้างไฟล์ source map (.d.ts.map) สำหรับไฟล์ประกาศที่สร้างขึ้น Source maps ช่วยให้ debuggers และเครื่องมืออื่นๆ สามารถ map กลับไปยังโค้ดต้นฉบับ TypeScript เมื่อทำงานกับไฟล์ประกาศ
ตัวอย่าง:
"compilerOptions": {
"declaration": true,
"declarationMap": true
}
sourceMap
ตัวเลือกนี้สร้างไฟล์ source map (.js.map) สำหรับโค้ด JavaScript ที่คอมไพล์ Source maps ช่วยให้ debuggers และเครื่องมืออื่นๆ สามารถ map กลับไปยังโค้ดต้นฉบับ TypeScript เมื่อ debugging ในเบราว์เซอร์หรือสภาพแวดล้อมอื่นๆ
ตัวอย่าง:
"compilerOptions": {
"sourceMap": true
}
outFile
ตัวเลือกนี้ concatenates และ emits ไฟล์เอาต์พุตทั้งหมดลงในไฟล์เดียว โดยทั่วไปจะใช้สำหรับการ bundling โค้ดสำหรับแอปพลิเคชันที่ใช้เบราว์เซอร์
ตัวอย่าง:
"compilerOptions": {
"outFile": "dist/bundle.js"
}
outDir
ตัวเลือกนี้ระบุไดเรกทอรีเอาต์พุตสำหรับไฟล์ JavaScript ที่คอมไพล์ หากไม่ได้ระบุ compiler จะวางไฟล์เอาต์พุตในไดเรกทอรีเดียวกับไฟล์ต้นฉบับ
ตัวอย่าง:
"compilerOptions": {
"outDir": "dist"
}
การกำหนดค่านี้จะวางไฟล์ JavaScript ที่คอมไพล์ในไดเรกทอรี dist
rootDir
ตัวเลือกนี้ระบุไดเรกทอรีรากของโปรเจ็กต์ TypeScript compiler ใช้ไดเรกทอรีนี้เพื่อแก้ไขชื่อโมดูลและสร้างเส้นทางไฟล์เอาต์พุต สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับโครงสร้างโปรเจ็กต์ที่ซับซ้อน
ตัวอย่าง:
"compilerOptions": {
"rootDir": "src"
}
removeComments
ตัวเลือกนี้ลบความคิดเห็นออกจากโค้ด JavaScript ที่คอมไพล์ สิ่งนี้สามารถช่วยลดขนาดของไฟล์เอาต์พุตได้
ตัวอย่าง:
"compilerOptions": {
"removeComments": true
}
noEmitOnError
ตัวเลือกนี้ป้องกันไม่ให้ compiler สร้างไฟล์ JavaScript หากตรวจพบข้อผิดพลาดประเภทใดๆ สิ่งนี้ทำให้มั่นใจได้ว่าจะมีการสร้างเฉพาะโค้ดที่ถูกต้องเท่านั้น
ตัวอย่าง:
"compilerOptions": {
"noEmitOnError": true
}
strict
ตัวเลือกนี้เปิดใช้งานตัวเลือกการตรวจสอบประเภทที่เข้มงวดทั้งหมด ขอแนะนำอย่างยิ่งสำหรับโปรเจ็กต์ใหม่ เนื่องจากจะช่วยจับข้อผิดพลาดที่อาจเกิดขึ้นและบังคับใช้แนวทางปฏิบัติที่ดีที่สุด
ตัวอย่าง:
"compilerOptions": {
"strict": true
}
การเปิดใช้งาน strict mode เทียบเท่ากับการเปิดใช้งานตัวเลือกต่อไปนี้:
noImplicitAnynoImplicitThisalwaysStrictstrictNullChecksstrictFunctionTypesstrictBindCallApplynoImplicitReturnsnoFallthroughCasesInSwitch
esModuleInterop
ตัวเลือกนี้เปิดใช้งานการทำงานร่วมกันระหว่างโมดูล CommonJS และ ES ช่วยให้คุณสามารถนำเข้าโมดูล CommonJS ในโมดูล ES และในทางกลับกัน
ตัวอย่าง:
"compilerOptions": {
"esModuleInterop": true
}
forceConsistentCasingInFileNames
ตัวเลือกนี้บังคับใช้ casing ที่สอดคล้องกันในชื่อไฟล์ สิ่งนี้สำคัญสำหรับความเข้ากันได้ข้ามแพลตฟอร์ม เนื่องจากระบบปฏิบัติการบางระบบคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ในขณะที่ระบบอื่นๆ ไม่เป็นเช่นนั้น
ตัวอย่าง:
"compilerOptions": {
"forceConsistentCasingInFileNames": true
}
baseUrl และ paths
ตัวเลือกเหล่านี้ช่วยให้คุณกำหนดค่าการแก้ไขโมดูล baseUrl ระบุไดเรกทอรีฐานสำหรับการแก้ไขชื่อโมดูลที่ไม่ใช่แบบสัมพัทธ์ และ paths ช่วยให้คุณกำหนดนามแฝงโมดูลที่กำหนดเองได้
ตัวอย่าง:
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@components/*": ["src/components/*"],
"@utils/*": ["src/utils/*"]
}
}
การกำหนดค่านี้ช่วยให้คุณนำเข้าโมดูลโดยใช้นามแฝง เช่น @components/MyComponent และ @utils/myFunction
การกำหนดค่าขั้นสูง: เหนือกว่าพื้นฐาน
ตอนนี้ มาสำรวจตัวเลือก tsconfig.json ขั้นสูงบางอย่างที่สามารถปรับปรุงประสบการณ์การพัฒนา TypeScript ของคุณได้มากยิ่งขึ้น
Incremental Compilation
TypeScript สนับสนุน incremental compilation ซึ่งสามารถเร่งกระบวนการสร้างสำหรับโปรเจ็กต์ขนาดใหญ่ได้อย่างมาก ในการเปิดใช้งาน incremental compilation ให้ตั้งค่าตัวเลือก incremental เป็น true และระบุตัวเลือก tsBuildInfoFile
ตัวอย่าง:
"compilerOptions": {
"incremental": true,
"tsBuildInfoFile": ".tsbuildinfo"
}
ตัวเลือก tsBuildInfoFile ระบุไฟล์ที่ compiler จะจัดเก็บข้อมูลการสร้าง ข้อมูลนี้ใช้เพื่อกำหนดว่าไฟล์ใดที่ต้องคอมไพล์ใหม่ระหว่างการสร้างครั้งต่อๆ ไป
Project References
Project references ช่วยให้คุณจัดโครงสร้างโค้ดของคุณเป็นโปรเจ็กต์ที่เล็กลงและจัดการได้ง่ายขึ้น สิ่งนี้สามารถปรับปรุงเวลาในการสร้างและการจัดระเบียบโค้ดสำหรับ codebases ขนาดใหญ่ เปรียบเทียบแนวคิดนี้ได้ดีกับสถาปัตยกรรม Microservice - แต่ละบริการเป็นอิสระ แต่ต้องอาศัยบริการอื่นๆ ในระบบนิเวศ
ในการใช้ project references คุณต้องสร้างไฟล์ tsconfig.json แยกต่างหากสำหรับแต่ละโปรเจ็กต์ จากนั้น ในไฟล์ tsconfig.json หลัก คุณสามารถระบุโปรเจ็กต์ที่ควรอ้างอิงโดยใช้ตัวเลือก references
ตัวอย่าง:
{
"compilerOptions": {
...
},
"references": [
{ "path": "./project1" },
{ "path": "./project2" }
]
}
การกำหนดค่านี้ระบุว่าโปรเจ็กต์ปัจจุบันขึ้นอยู่กับโปรเจ็กต์ที่อยู่ในไดเรกทอรี ./project1 และ ./project2
Custom Transformers
Custom transformers ช่วยให้คุณปรับเปลี่ยนเอาต์พุตของ TypeScript compiler สิ่งนี้สามารถใช้เพื่อวัตถุประสงค์ต่างๆ เช่น การเพิ่มการแปลงโค้ดที่กำหนดเอง การลบโค้ดที่ไม่ได้ใช้ หรือการเพิ่มประสิทธิภาพเอาต์พุตสำหรับสภาพแวดล้อมเฉพาะ โดยทั่วไปจะใช้สำหรับงาน i18n internationalization และ localization
ในการใช้ custom transformers คุณต้องสร้างไฟล์ JavaScript แยกต่างหากที่ส่งออกฟังก์ชันที่จะถูกเรียกใช้โดย compiler จากนั้น คุณสามารถระบุไฟล์ transformer โดยใช้ตัวเลือก plugins ในไฟล์ tsconfig.json
ตัวอย่าง:
{
"compilerOptions": {
...
"plugins": [
{ "transform": "./transformer.js" }
]
}
}
การกำหนดค่านี้ระบุว่าไฟล์ ./transformer.js ควรใช้เป็น custom transformer
Files, Include, and Exclude
นอกเหนือจาก compilerOptions ตัวเลือก root-level อื่นๆ ใน tsconfig.json จะควบคุมว่าไฟล์ใดที่รวมอยู่ในกระบวนการคอมไพล์:
- files: อาร์เรย์ของเส้นทางไฟล์ที่จะรวมในการคอมไพล์
- include: อาร์เรย์ของ glob patterns ที่ระบุไฟล์ที่จะรวม
- exclude: อาร์เรย์ของ glob patterns ที่ระบุไฟล์ที่จะแยกออก
ตัวเลือกเหล่านี้ให้การควบคุมอย่างละเอียดเกี่ยวกับไฟล์ที่ประมวลผลโดย TypeScript compiler ตัวอย่างเช่น คุณสามารถแยกไฟล์ทดสอบหรือโค้ดที่สร้างขึ้นออกจากกระบวนการคอมไพล์
ตัวอย่าง:
{
"compilerOptions": { ... },
"include": ["src/**/*"],
"exclude": ["node_modules", "dist", "**/*.spec.ts"]
}
การกำหนดค่านี้รวมไฟล์ทั้งหมดในไดเรกทอรี src และไดเรกทอรีย่อย ในขณะที่แยกไฟล์ในไดเรกทอรี node_modules และ dist เช่นเดียวกับไฟล์ใดๆ ที่มีนามสกุล .spec.ts (โดยทั่วไปใช้สำหรับการทดสอบหน่วย)
Compiler Options for Specific Scenarios
โปรเจ็กต์ต่างๆ อาจต้องใช้การตั้งค่า compiler ที่แตกต่างกันเพื่อให้ได้ผลลัพธ์ที่ดีที่สุด ลองดูสถานการณ์เฉพาะบางอย่างและการตั้งค่า compiler ที่แนะนำสำหรับแต่ละสถานการณ์
Web Application Development
สำหรับการพัฒนา web application โดยทั่วไปคุณจะต้องใช้การตั้งค่า compiler ต่อไปนี้:
{
"compilerOptions": {
"target": "ESNext",
"module": "ESNext",
"moduleResolution": "Node",
"jsx": "react-jsx",
"esModuleInterop": true,
"strict": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"sourceMap": true,
"outDir": "dist"
},
"include": ["src/**/*"],
"exclude": ["node_modules"]
}
การตั้งค่าเหล่านี้เหมาะสำหรับ web application สมัยใหม่ที่ใช้ React หรือเฟรมเวิร์กที่คล้ายกันอื่นๆ พวกเขากำหนดเป้าหมายไปที่คุณสมบัติ ECMAScript ล่าสุด ใช้ ES modules และเปิดใช้งานการตรวจสอบประเภทที่เข้มงวด
Node.js Backend Development
สำหรับการพัฒนา Node.js backend โดยทั่วไปคุณจะต้องใช้การตั้งค่า compiler ต่อไปนี้:
{
"compilerOptions": {
"target": "ESNext",
"module": "CommonJS",
"esModuleInterop": true,
"strict": true,
"sourceMap": true,
"outDir": "dist",
"resolveJsonModule": true
},
"include": ["src/**/*"],
"exclude": ["node_modules"]
}
การตั้งค่าเหล่านี้เหมาะสำหรับแอปพลิเคชัน Node.js ที่ใช้ระบบโมดูล CommonJS พวกเขากำหนดเป้าหมายไปที่คุณสมบัติ ECMAScript ล่าสุด เปิดใช้งานการตรวจสอบประเภทที่เข้มงวด และอนุญาตให้คุณนำเข้าไฟล์ JSON เป็นโมดูล
Library Development
สำหรับการพัฒนา library โดยทั่วไปคุณจะต้องใช้การตั้งค่า compiler ต่อไปนี้:
{
"compilerOptions": {
"target": "ES5",
"module": "UMD",
"declaration": true,
"declarationMap": true,
"sourceMap": true,
"outDir": "dist",
"strict": true,
"esModuleInterop": true
},
"include": ["src/**/*"],
"exclude": ["node_modules", "**/*.spec.ts"]
}
การตั้งค่าเหล่านี้เหมาะสำหรับการสร้าง libraries ที่สามารถใช้ได้ทั้งในสภาพแวดล้อม browser และ Node.js พวกเขาสร้างไฟล์ประกาศและ source maps เพื่อปรับปรุงประสบการณ์ของนักพัฒนา
Best Practices for TSConfig Management
ต่อไปนี้เป็นแนวทางปฏิบัติที่ดีที่สุดที่ควรคำนึงถึงเมื่อจัดการไฟล์ tsconfig.json ของคุณ:
- เริ่มต้นด้วยการกำหนดค่าพื้นฐาน: สร้างไฟล์
tsconfig.jsonพื้นฐานด้วยการตั้งค่าทั่วไป จากนั้นขยายในโปรเจ็กต์อื่นๆ โดยใช้ตัวเลือกextends - ใช้ strict mode: เปิดใช้งาน strict mode เพื่อจับข้อผิดพลาดที่อาจเกิดขึ้นและบังคับใช้แนวทางปฏิบัติที่ดีที่สุด
- กำหนดค่าการแก้ไขโมดูล: กำหนดค่าการแก้ไขโมดูลอย่างถูกต้องเพื่อหลีกเลี่ยงข้อผิดพลาดในการนำเข้า
- ใช้ project references: จัดโครงสร้างโค้ดของคุณเป็นโปรเจ็กต์ที่เล็กลงและจัดการได้ง่ายขึ้นโดยใช้ project references
- อัปเดตไฟล์
tsconfig.jsonของคุณให้เป็นปัจจุบัน: ตรวจสอบไฟล์tsconfig.jsonของคุณเป็นประจำและอัปเดตเมื่อโปรเจ็กต์ของคุณพัฒนาขึ้น - ควบคุมเวอร์ชันไฟล์
tsconfig.jsonของคุณ: Commit ไฟล์tsconfig.jsonของคุณไปยังการควบคุมเวอร์ชันพร้อมกับซอร์สโค้ดอื่นๆ ของคุณ - จัดทำเอกสารการกำหนดค่าของคุณ: เพิ่มความคิดเห็นลงในไฟล์
tsconfig.jsonของคุณเพื่ออธิบายวัตถุประสงค์ของแต่ละตัวเลือก
Conclusion: Mastering TypeScript Configuration
ไฟล์ tsconfig.json เป็นเครื่องมือที่ทรงพลังสำหรับการกำหนดค่า TypeScript compiler และการควบคุมกระบวนการสร้าง ด้วยการทำความเข้าใจตัวเลือกที่มีอยู่และปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุด คุณสามารถปรับแต่งโปรเจ็กต์ TypeScript ของคุณเพื่อประสิทธิภาพ ความสามารถในการบำรุงรักษา และความเข้ากันได้อย่างเหมาะสมที่สุด คู่มือนี้ได้ให้ภาพรวมที่ครอบคลุมของตัวเลือกขั้นสูงที่มีอยู่ในไฟล์ tsconfig.json ช่วยให้คุณควบคุมขั้นตอนการพัฒนา TypeScript ของคุณได้อย่างเต็มที่ อย่าลืมปรึกษาเอกสาร TypeScript อย่างเป็นทางการเสมอสำหรับข้อมูลและคำแนะนำที่เป็นปัจจุบันที่สุด เมื่อโปรเจ็กต์ของคุณพัฒนาไป ความเข้าใจและการใช้ประโยชน์จากเครื่องมือการกำหนดค่าที่ทรงพลังเหล่านี้ของคุณก็ควรจะพัฒนาไปด้วยเช่นกัน ขอให้มีความสุขกับการเขียนโค้ด!