สำรวจการตรวจสอบประเภทของ JavaScript import assertion ฟีเจอร์ทรงพลังสำหรับยืนยันประเภทโมดูลและป้องกันข้อผิดพลาดรันไทม์ เรียนรู้วิธีเพิ่มความน่าเชื่อถือและการบำรุงรักษาโค้ด
การตรวจสอบประเภทของ JavaScript Import Assertion: การันตีความสมบูรณ์ของโมดูล
ในการพัฒนา JavaScript สมัยใหม่ การรับประกันความสมบูรณ์และการตีความโมดูลที่ถูกต้องเป็นสิ่งสำคัญยิ่ง ธรรมชาติที่ไม่หยุดนิ่งของ JavaScript บางครั้งอาจนำไปสู่ข้อผิดพลาดขณะทำงาน (runtime errors) ที่ไม่คาดคิดหากโมดูลไม่ใช่สิ่งที่คุณคาดหวัง Import assertions โดยเฉพาะการตรวจสอบประเภท (type checking) เป็นกลไกที่ช่วยให้เราสามารถประกาศประเภทที่คาดหวังของโมดูลได้อย่างชัดเจน ทำให้ JavaScript engine สามารถตรวจสอบความคาดหวังนี้ได้ในขณะโหลด (load time) แนวทางเชิงรุกนี้ช่วยเพิ่มความน่าเชื่อถือและการบำรุงรักษาโค้ดได้อย่างมาก
Import Assertions คืออะไร?
Import assertions เป็นฟีเจอร์ที่ช่วยให้คุณสามารถส่งข้อมูลเพิ่มเติมไปยัง JavaScript engine เมื่อทำการนำเข้าโมดูล ข้อมูลนี้จะแสดงในรูปแบบคู่คีย์-ค่า (key-value pairs) ภายในคำสั่ง import โดย assertions เหล่านี้ไม่ได้มีวัตถุประสงค์เพื่อแก้ไขพฤติกรรมของโมดูล แต่เพื่อตรวจสอบว่าโมดูลนั้นเป็นไปตามเกณฑ์ที่กำหนด ช่วยให้นักพัฒนาสามารถระบุข้อจำกัดเกี่ยวกับโครงสร้างหรือเนื้อหาของโมดูล เพื่อให้แน่ใจว่าโมดูลนั้นถูกตีความอย่างถูกต้อง
รูปแบบไวยากรณ์ทั่วไปมีลักษณะดังนี้:
import module from './module.json' assert { type: 'json' };
ในที่นี้ `assert { type: 'json' }` คือ import assertion ซึ่งกำลังบอกกับ JavaScript engine ว่า "ฉันคาดหวังว่าโมดูลนี้จะเป็นประเภท JSON" หาก engine โหลดโมดูลแล้วพบว่ามัน*ไม่ใช่* JSON ก็จะโยนข้อผิดพลาด (throw an error) ออกมา ซึ่งจะช่วยป้องกันปัญหาที่อาจร้ายแรงในภายหลังของวงจรชีวิตแอปพลิเคชันได้
ความสำคัญของการตรวจสอบประเภท (Type Checking)
JavaScript เป็นภาษาแบบ dynamically typed ซึ่งหมายความว่าการตรวจสอบประเภทส่วนใหญ่จะเกิดขึ้นในขณะทำงาน (runtime) แม้ว่าสิ่งนี้จะให้ความยืดหยุ่น แต่ก็ทำให้เกิดข้อผิดพลาดที่อาจปรากฏขึ้นเฉพาะเมื่อแอปพลิเคชันกำลังทำงานในสภาพแวดล้อมจริง (production) ข้อผิดพลาดขณะทำงานเหล่านี้อาจแก้ไขได้ยากและอาจนำไปสู่พฤติกรรมของแอปพลิเคชันที่ไม่คาดคิด ข้อมูลเสียหาย หรือแม้แต่ช่องโหว่ด้านความปลอดภัย
การตรวจสอบประเภทด้วย Import assertion จะย้ายภาระการตรวจสอบประเภทจากขณะทำงานไปยังขณะโหลด การระบุประเภทที่คาดหวังของโมดูลอย่างชัดเจนเปรียบเสมือนการสร้างสัญญาระหว่างโมดูลและโค้ดที่นำเข้า หากสัญญานี้ถูกละเมิด JavaScript engine จะแจ้งเตือนทันที ป้องกันไม่ให้ข้อผิดพลาดลุกลามต่อไป
การตรวจจับประเภทที่ไม่ตรงกันตั้งแต่เนิ่นๆ นี้มีประโยชน์ที่สำคัญหลายประการ:
- ปรับปรุงความน่าเชื่อถือของโค้ด: การดักจับข้อผิดพลาดด้านประเภทตั้งแต่เนิ่นๆ ช่วยลดความเสี่ยงของข้อยกเว้นขณะทำงาน (runtime exceptions) และการแครชของแอปพลิเคชัน
- เพิ่มประสิทธิภาพการบำรุงรักษา: การประกาศประเภทที่ชัดเจนทำให้เข้าใจโครงสร้างและเนื้อหาที่คาดหวังของโมดูลได้ง่ายขึ้น ช่วยอำนวยความสะดวกในการปรับโครงสร้างโค้ด (refactoring) และการทำงานร่วมกันระหว่างนักพัฒนา
- ลดเวลาในการดีบัก: เมื่อเกิดข้อผิดพลาด import assertion จะบ่งชี้ถึงแหล่งที่มาของปัญหาอย่างชัดเจน ทำให้ง่ายต่อการระบุและแก้ไขปัญหาที่ต้นเหตุ
- เพิ่มความปลอดภัย: ในบางสถานการณ์ การตรวจสอบประเภทสามารถช่วยป้องกันช่องโหว่ด้านความปลอดภัยได้โดยทำให้แน่ใจว่าโมดูลไม่ได้ถูกสร้างขึ้นอย่างประสงค์ร้ายเพื่อใช้ประโยชน์จากประเภทที่ไม่ตรงกัน
วิธีการทำงานของการตรวจสอบประเภทด้วย Import Assertion
กลไกหลักเบื้องหลังการตรวจสอบประเภทด้วย import assertion คือการที่ JavaScript engine เปรียบเทียบประเภทที่ประกาศใน `assert` clause กับประเภทที่แท้จริงของโมดูลที่กำลังถูกนำเข้า engine จะใช้กลไกภายในเพื่อกำหนดประเภทของโมดูลตามเนื้อหาและโครงสร้างของมัน หากประเภทที่ประกาศและประเภทจริงไม่ตรงกัน engine จะโยนข้อผิดพลาดออกมา โดยทั่วไปจะเป็น `TypeError` หรือข้อยกเว้นที่คล้ายกันซึ่งบ่งชี้ว่าประเภทของโมดูลไม่ตรงกัน
ตัวอย่างสถานการณ์
เรามาดูตัวอย่างการใช้งานจริงเพื่อแสดงให้เห็นว่าการตรวจสอบประเภทด้วย import assertion ทำงานอย่างไรในสถานการณ์ต่างๆ:
1. การนำเข้าไฟล์ JSON
พิจารณาสถานการณ์ที่คุณกำลังนำเข้าไฟล์ JSON ที่มีข้อมูลการกำหนดค่า:
// config.json
{
"apiUrl": "https://api.example.com",
"timeout": 5000
}
// main.js
import config from './config.json' assert { type: 'json' };
console.log(config.apiUrl);
ในตัวอย่างนี้ `assert { type: 'json' }` clause ประกาศอย่างชัดเจนว่าโมดูลที่นำเข้าควรเป็นไฟล์ JSON หากไฟล์ `config.json` ถูกแทนที่ด้วยไฟล์ประเภทอื่นโดยไม่ได้ตั้งใจ (เช่น ไฟล์ JavaScript ที่มี JSON ไม่ถูกต้อง) JavaScript engine จะโยนข้อผิดพลาดระหว่างกระบวนการนำเข้า ซึ่งจะป้องกันไม่ให้แอปพลิเคชันใช้ข้อมูลการกำหนดค่าที่ไม่ถูกต้อง
2. การนำเข้า CSS Module
เมื่อทำงานกับ CSS modules คุณสามารถใช้ import assertions เพื่อให้แน่ใจว่าคุณกำลังนำเข้าไฟล์ CSS ที่ถูกต้อง:
// styles.module.css
.container {
background-color: #f0f0f0;
padding: 20px;
}
// component.js
import styles from './styles.module.css' assert { type: 'css' };
const element = document.createElement('div');
element.className = styles.container;
document.body.appendChild(element);
ในกรณีนี้ `assert { type: 'css' }` clause ทำให้แน่ใจว่าโมดูลที่นำเข้าเป็นไฟล์ CSS หากไฟล์นั้นไม่ใช่ไฟล์ CSS ที่ถูกต้อง engine จะโยนข้อผิดพลาดออกมา ซึ่งจะช่วยป้องกันปัญหาด้านสไตล์หรือข้อยกเว้นขณะทำงานที่อาจเกิดขึ้นได้
3. การนำเข้าไฟล์ข้อความ (Text File)
Import assertions ยังสามารถใช้เพื่อตรวจสอบประเภทของไฟล์ข้อความได้อีกด้วย:
// data.txt
This is some sample data.
// app.js
import data from './data.txt' assert { type: 'text' };
console.log(data);
ในที่นี้ `assert { type: 'text' }` clause ทำให้แน่ใจว่าโมดูลที่นำเข้าเป็นไฟล์ข้อความ สิ่งนี้มีประโยชน์เมื่อคุณต้องการประมวลผลข้อมูลที่เป็นข้อความและต้องการให้แน่ใจว่าไฟล์นั้นมีเนื้อหาข้อความที่ถูกต้อง
4. การนำเข้าไฟล์ HTML
แม้ว่าจะไม่ค่อยพบบ่อยนัก แต่ import assertions ก็สามารถใช้กับไฟล์ HTML ได้เช่นกัน แม้ว่าการใช้งานจริงจะขึ้นอยู่กับ module loader ที่ใช้ กุญแจสำคัญคือการทำให้แน่ใจว่า loader ของคุณถือว่าไฟล์ HTML เป็นโมดูล (เช่น ส่งคืนเนื้อหา HTML เป็นสตริง)
// template.html
<div class="container">
<h1>Hello, World!</h1>
</div>
// app.js
import template from './template.html' assert { type: 'html' };
const element = document.createElement('div');
element.innerHTML = template;
document.body.appendChild(element);
ด้วยการกำหนดค่าที่เหมาะสม (โดยปกติจะเกี่ยวข้องกับ bundler อย่าง Webpack หรือ Parcel) สิ่งนี้สามารถทำงานได้ `assert { type: 'html' }` จะบอก engine (หรือที่จริงแล้วคือ bundler) ว่าไฟล์นี้ *ควร* ได้รับการปฏิบัติเหมือนเป็น HTML หากไฟล์มีรูปแบบที่ไม่ถูกต้อง bundler อาจโยนข้อผิดพลาดระหว่างกระบวนการ build (ซึ่งโดยพื้นฐานแล้วคือการตรวจสอบประเภทตั้งแต่เนิ่นๆ)
ประโยชน์ของการใช้ Import Assertions
ประโยชน์ของการใช้ import assertions นั้นมีมากกว่าแค่การป้องกันข้อผิดพลาดขณะทำงาน แต่ยังมีส่วนช่วยให้โค้ดมีความแข็งแกร่งและบำรุงรักษาได้ง่ายขึ้นในหลายๆ ด้าน:
- ความชัดเจนของโค้ดที่ดีขึ้น: Import assertions ทำหน้าที่เป็นเอกสารประกอบ โดยระบุประเภทที่คาดหวังของแต่ละโมดูลอย่างชัดเจน ทำให้ง่ายต่อนักพัฒนาในการทำความเข้าใจโค้ดและลดภาระทางความคิดที่ต้องใช้ในการบำรุงรักษา
- ลดภาระทางความคิด: การทำให้ประเภทของโมดูลที่คาดหวังมีความชัดเจน ทำให้นักพัฒนาสามารถมุ่งเน้นไปที่ตรรกะของโค้ดแทนที่จะต้องคอยติดตามประเภทของโมดูลที่นำเข้ามาในใจ
- การปรับโครงสร้างโค้ดที่ดีขึ้น: เมื่อทำการปรับโครงสร้างโค้ด (refactoring) import assertions จะเป็นเหมือนตาข่ายความปลอดภัยที่ช่วยให้มั่นใจได้ว่าการเปลี่ยนแปลงจะไม่ทำให้เกิดข้อผิดพลาดด้านประเภทโดยไม่ได้ตั้งใจ หากการปรับโครงสร้างทำลายสัญญาด้านประเภทที่ระบุไว้ใน import assertion engine จะแจ้งเตือนทันที
- การทำงานร่วมกันที่ดีขึ้น: Import assertions ช่วยอำนวยความสะดวกในการทำงานร่วมกันระหว่างนักพัฒนาโดยให้วิธีการสื่อสารประเภทที่คาดหวังของโมดูลที่ชัดเจนและไม่คลุมเครือ ซึ่งช่วยลดความเสี่ยงของความเข้าใจผิดและปัญหาการรวมระบบ
- ความมั่นใจที่เพิ่มขึ้น: การที่รู้ว่าโค้ดของคุณได้รับการป้องกันโดยการตรวจสอบประเภทด้วย import assertion จะทำให้คุณมีความมั่นใจในความถูกต้องและความน่าเชื่อถือของโค้ดมากขึ้น สิ่งนี้มีค่าอย่างยิ่งในแอปพลิเคชันที่ซับซ้อนหรือมีความสำคัญ
สถานะปัจจุบันและการรองรับของเบราว์เซอร์
Import assertions เป็นฟีเจอร์ที่ค่อนข้างใหม่ใน JavaScript การรองรับของเบราว์เซอร์ยังคงมีการพัฒนาอย่างต่อเนื่อง ในขณะที่เขียนบทความนี้ การรองรับจะแตกต่างกันไปในแต่ละเบราว์เซอร์และ JavaScript runtimes ควรตรวจสอบตารางความเข้ากันได้ของเบราว์เซอร์ล่าสุด (เช่น บน MDN Web Docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import#browser_compatibility) สำหรับข้อมูลล่าสุด โดยทั่วไปแล้วฟีเจอร์นี้จะมีความสมบูรณ์ในสภาพแวดล้อมของ Node.js มากกว่าในเบราว์เซอร์ แม้ว่าการยอมรับในเบราว์เซอร์จะเพิ่มขึ้นเรื่อยๆ ก็ตาม
หากคุณต้องการรองรับเบราว์เซอร์รุ่นเก่า คุณอาจพิจารณาใช้ transpiler อย่าง Babel ซึ่งสามารถแปลงโค้ดที่มี import assertions ไปเป็นโค้ดที่เทียบเท่ากันซึ่งเข้ากันได้กับ JavaScript เวอร์ชันเก่า อย่างไรก็ตาม โปรดทราบว่าการรองรับ import assertions ของ Babel อาจเกี่ยวข้องกับการตรวจสอบขณะทำงานแทนที่จะเป็นการตรวจสอบประเภทแบบสแตติก
Polyfills และ Transpilers
เนื่องจากการรองรับ import assertions ของเบราว์เซอร์ยังไม่ครอบคลุมทั้งหมด คุณอาจต้องใช้ polyfills หรือ transpilers เพื่อให้แน่ใจว่าเข้ากันได้กับเบราว์เซอร์รุ่นเก่า นี่คือภาพรวมสั้นๆ ว่าเครื่องมือเหล่านี้สามารถช่วยได้อย่างไร:
- Transpilers: เครื่องมืออย่าง Babel สามารถแปลงโค้ดที่มี import assertions ไปเป็นโค้ดที่เทียบเท่ากันซึ่งใช้กลไกทางเลือกในการโหลดโมดูลและตรวจสอบประเภท สิ่งนี้ช่วยให้คุณสามารถใช้ import assertions ในโค้ดของคุณได้แม้ว่าเบราว์เซอร์เป้าหมายจะไม่รองรับโดยกำเนิดก็ตาม อย่างไรก็ตาม โปรดทราบว่าโค้ดที่ถูกแปลงอาจไม่ได้ให้การตรวจสอบประเภทแบบสแตติกในระดับเดียวกับโค้ดดั้งเดิม
- Polyfills: Polyfills คือโค้ดชิ้นเล็กๆ ที่ให้ฟังก์ชันการทำงานที่ขาดหายไปในเบราว์เซอร์รุ่นเก่า แม้ว่าการสร้าง polyfill โดยตรงสำหรับ import assertions จะทำได้ยาก แต่คุณสามารถใช้ polyfills สำหรับฟีเจอร์ที่เกี่ยวข้อง เช่น การโหลดโมดูลและการตรวจสอบประเภท เพื่อให้ได้ผลลัพธ์ที่คล้ายคลึงกัน
แนวทางปฏิบัติที่ดีที่สุดสำหรับการใช้ Import Assertions
เพื่อใช้ประโยชน์สูงสุดจาก import assertions ให้ปฏิบัติตามแนวทางที่ดีที่สุดเหล่านี้:
- ระบุให้ชัดเจน: ระบุประเภทที่คาดหวังของแต่ละโมดูลโดยใช้ `assert` clause เสมอ ซึ่งจะทำให้โค้ดของคุณอ่านง่ายขึ้นและลดความเสี่ยงของข้อผิดพลาดด้านประเภท
- เลือกประเภทที่เหมาะสม: เลือกประเภทที่เหมาะสมที่สุดสำหรับแต่ละโมดูล ประเภทที่พบบ่อย ได้แก่ `json`, `css`, `text` และ `html`
- ทดสอบอย่างละเอียด: ทดสอบโค้ดของคุณด้วยประเภทโมดูลและข้อมูลที่แตกต่างกันเพื่อให้แน่ใจว่า import assertions ทำงานตามที่คาดหวัง
- ใช้ Linter: ใช้ linter เพื่อบังคับให้มีการใช้ import assertions อย่างสม่ำเสมอทั่วทั้งโค้ดเบสของคุณ
- ติดตามข่าวสารล่าสุด: ติดตามข้อมูลความเข้ากันได้ของเบราว์เซอร์ล่าสุดและอัปเดต polyfills หรือ transpilers ของคุณตามความจำเป็น
- พิจารณาประสิทธิภาพ: แม้ว่าโดยทั่วไปแล้ว import assertions จะมีผลกระทบต่อประสิทธิภาพเพียงเล็กน้อย แต่ควรคำนึงถึงภาระงานที่อาจเกิดขึ้นเมื่อทำงานกับโมดูลขนาดใหญ่มาก
- คิดในภาพรวม: เมื่อกำหนดประเภทของโมดูล ให้พิจารณาถึงความเป็นไปได้ของการทำให้เป็นสากล (internationalization) และการปรับให้เข้ากับท้องถิ่น (localization) ตัวอย่างเช่น หากคุณกำลังนำเข้าไฟล์ JSON ที่มีสตริงที่แปลแล้ว ให้แน่ใจว่าไฟล์นั้นถูกเข้ารหัสอย่างถูกต้อง (เช่น UTF-8) และ JavaScript engine ตีความการเข้ารหัสนั้นได้อย่างถูกต้อง
กรณีการใช้งานขั้นสูง
แม้ว่ากรณีการใช้งานที่พบบ่อยที่สุดสำหรับ import assertions คือการตรวจสอบประเภท แต่ก็มีสถานการณ์ขั้นสูงอื่นๆ ที่อาจมีประโยชน์:
- การตรวจสอบเวอร์ชัน: คุณอาจใช้ import assertions เพื่อตรวจสอบเวอร์ชันของโมดูลได้ แม้ว่าจะไม่ค่อยพบบ่อยและต้องใช้ module loaders ที่กำหนดเอง
- การกำหนดค่าเฉพาะสภาพแวดล้อม: คุณสามารถใช้ import assertions ร่วมกับการนำเข้าแบบมีเงื่อนไขเพื่อโหลดการกำหนดค่าที่แตกต่างกันตามสภาพแวดล้อม (เช่น development, production)
- Custom Module Loaders: หากคุณกำลังสร้าง module loader ของตัวเอง คุณสามารถใช้ import assertions เพื่อให้ข้อมูลเพิ่มเติมแก่ loader เกี่ยวกับวิธีการจัดการกับโมดูลประเภทต่างๆ
อนาคตของ Import Assertions
Import assertions มีแนวโน้มที่จะกลายเป็นส่วนสำคัญของการพัฒนา JavaScript มากขึ้นเรื่อยๆ เมื่อภาษามีการพัฒนาต่อไป เมื่อการรองรับของเบราว์เซอร์ดีขึ้นและนักพัฒนาจำนวนมากขึ้นนำฟีเจอร์นี้ไปใช้ มันจะช่วยสร้างระบบนิเวศของ JavaScript ที่แข็งแกร่งและน่าเชื่อถือยิ่งขึ้น การพัฒนาในอนาคตอาจรวมถึง:
- คำจำกัดความประเภทที่เป็นมาตรฐานมากขึ้น: ชุมชน JavaScript อาจพัฒนาคำจำกัดความประเภทที่เป็นมาตรฐานมากขึ้นสำหรับโมดูลประเภททั่วไป ทำให้ง่ายต่อการใช้ import assertions อย่างสม่ำเสมอในโปรเจกต์ต่างๆ
- การบูรณาการกับระบบประเภท: Import assertions อาจถูกรวมเข้ากับระบบประเภทอย่าง TypeScript ซึ่งจะให้ความสามารถในการตรวจสอบประเภทที่แข็งแกร่งยิ่งขึ้น
- เครื่องมือที่ดีขึ้น: การสนับสนุนเครื่องมือสำหรับ import assertions มีแนวโน้มที่จะดีขึ้นเมื่อเวลาผ่านไป ทำให้ง่ายต่อการใช้งานและจัดการในโปรเจกต์ขนาดใหญ่
- Assertions ที่แสดงออกได้มากขึ้น: มาตรฐาน ECMAScript เวอร์ชันในอนาคตอาจแนะนำกลไก assertion ที่แสดงออกได้มากขึ้น ช่วยให้นักพัฒนาสามารถระบุข้อจำกัดที่ซับซ้อนมากขึ้นเกี่ยวกับประเภทและเนื้อหาของโมดูล
บทสรุป
การตรวจสอบประเภทด้วย JavaScript import assertion เป็นฟีเจอร์ที่มีคุณค่าสำหรับการเพิ่มความน่าเชื่อถือ การบำรุงรักษา และความปลอดภัยของโค้ด การประกาศประเภทที่คาดหวังของโมดูลอย่างชัดเจนช่วยให้คุณสามารถดักจับข้อผิดพลาดด้านประเภทได้ตั้งแต่เนิ่นๆ ในกระบวนการพัฒนา ซึ่งจะช่วยลดความเสี่ยงของข้อยกเว้นขณะทำงานและปรับปรุงคุณภาพโดยรวมของโค้ดของคุณ แม้ว่าการรองรับของเบราว์เซอร์จะยังคงมีการพัฒนาอย่างต่อเนื่อง แต่ประโยชน์ของการใช้ import assertions นั้นชัดเจน การปฏิบัติตามแนวทางที่ดีที่สุดและการติดตามข่าวสารล่าสุดจะช่วยให้คุณสามารถใช้ประโยชน์จากฟีเจอร์อันทรงพลังนี้เพื่อสร้างแอปพลิเคชัน JavaScript ที่แข็งแกร่งและน่าเชื่อถือยิ่งขึ้น
เมื่อคุณรวม import assertions เข้ากับเวิร์กโฟลว์ของคุณ โปรดจำไว้ว่ามันเป็นเครื่องมือที่จะช่วยให้คุณเขียนโค้ดได้ดีขึ้น ควรใช้ร่วมกับแนวปฏิบัติการเขียนโค้ดที่ดีอื่นๆ เช่น การทดสอบอย่างละเอียดและการตรวจสอบโค้ด (code reviews) เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด การยอมรับ import assertions เป็นก้าวหนึ่งสู่อนาคตของ JavaScript ที่มีความปลอดภัยด้านประเภทและคาดเดาได้มากขึ้น
ลักษณะที่เป็นสากลของการพัฒนา JavaScript หมายความว่าโค้ดมักจะถูกแชร์และนำกลับมาใช้ใหม่ในทีมและองค์กรต่างๆ การใช้ import assertions อย่างสม่ำเสมอช่วยให้มั่นใจได้ว่าโมดูลจะถูกตีความอย่างถูกต้อง ไม่ว่าจะใช้งานในสภาพแวดล้อมใดก็ตาม สิ่งนี้มีความสำคัญอย่างยิ่งเมื่อทำงานกับแอปพลิเคชันที่ต้องรองรับหลายภาษา ซึ่งโมดูลต่างๆ อาจมีเนื้อหาหรือข้อมูลที่ปรับให้เข้ากับท้องถิ่นนั้นๆ
ดังนั้น เริ่มสำรวจ import assertions วันนี้และสัมผัสกับประโยชน์ของความสมบูรณ์ของโมดูลที่เพิ่มขึ้นในโปรเจกต์ JavaScript ของคุณ!