ชนิดข้อมูล Fetch API และเจเนอริกของ Response.json()
ใช้ Fetch API ด้วยชนิดข้อมูลที่ถูกต้อง และใช้เจเนอริก Response.json () เพื่อแยกวิเคราะห์ข้อมูล JSON อย่างปลอดภัย
ชนิดข้อมูล Fetch API และเจเนอริกของ Response.json() เป็นบทเรียน TypeScript Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 2 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน TypeScript Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 2 บทเรียน
บทนำ
เป้าหมาย: เรียก API ด้วย fetch จัดการการตอบกลับอย่างปลอดภัย และใช้ชนิดข้อมูลทั่วไปกับ Response.json()
fetch พื้นฐาน
fetch คืนค่าเป็น Promise<Response> ใช้ res.text() สำหรับเนื้อหาการตอบกลับที่เป็นข้อความธรรมดา
async function getText() {
const res = await fetch("/hello.txt");
const text = await res.text();
console.log(text);
}ค่าเริ่มต้นของ res.json()
res.json() แยกวิเคราะห์เนื้อหาการตอบกลับ แต่ชนิดข้อมูลที่คืนค่าเป็น any โดยค่าเริ่มต้น จึงไม่มีความปลอดภัยขณะคอมไพล์
async function getData() {
const res = await fetch("/data.json");
const data = await res.json();
console.log(data);
}res.json<T>()
เรียกใช้ res.json<T>() ร่วมกับอินเทอร์เฟซ TS จะตรวจสอบว่าคุณใช้ฟิลด์ที่ถูกต้องของ User เท่านั้น
interface User { id: number; name: string }
async function getUser() {
const res = await fetch("/user.json");
const user = await res.json<User>();
console.log(user.id, user.name);
}ความปลอดภัยด้านชนิดข้อมูล
TypeScript ป้องกันการเข้าถึงฟิลด์ที่ไม่มีอยู่ เมื่อคุณใช้ชนิดข้อมูลทั่วไปกับ json<T>
interface Product { id: number; price: number }
async function getProduct() {
const res = await fetch("/product.json");
const p = await res.json<Product>();
// console.log(p.unknown); // Error: unknown does not exist
}การกำหนดชนิดข้อมูลให้แถวลำดับ
ชนิดข้อมูลทั่วไปใช้กับแถวลำดับได้เช่นกัน เช่น Todo[] TS จะตรวจสอบว่าแต่ละรายการมีรูปแบบที่ถูกต้อง
interface Todo { id: number; done: boolean }
async function getTodos() {
const res = await fetch("/todos.json");
const todos = await res.json<Todo[]>();
todos.forEach(t => console.log(t.id, t.done));
}การตรวจสอบ json<T>()
ตรวจสอบอย่างรวดเร็ว: การใช้ response.json<T>() พร้อมอาร์กิวเมนต์ชนิดข้อมูลมีประโยชน์อย่างไร
สรุปทบทวน
สรุปทบทวน: fetch คืนค่าเป็น Response ส่วน json() โดยค่าเริ่มต้นมีชนิดเป็น any เพิ่มชนิดข้อมูลทั่วไปด้วย json<T> เพื่อความปลอดภัยด้านชนิดข้อมูล
คำถามที่พบบ่อย
บทเรียน “ชนิดข้อมูล Fetch API และเจเนอริกของ Response.json()” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ชนิดข้อมูล Fetch API และเจเนอริกของ Response.json()” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส TypeScript Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 2 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ชนิดข้อมูล Fetch API และเจเนอริกของ Response.json()”
ใช้ Fetch API ด้วยชนิดข้อมูลที่ถูกต้อง และใช้เจเนอริก Response.json () เพื่อแยกวิเคราะห์ข้อมูล JSON อย่างปลอดภัย คุณปฏิบัติ TypeScript Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน TypeScript Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน TypeScript Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 2 บทเรียน
บทเรียน “ชนิดข้อมูล Fetch API และเจเนอริกของ Response.json()” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน TypeScript Academy นี้ได้ไหม
ได้ บทเรียน TypeScript Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ชนิดข้อมูล Fetch API และเจเนอริกของ Response.json()
- การตรวจสอบขณะทำงานด้วย zod (เบื้องต้น)