0Pricing
TypeScript Academy · บทเรียน

ชนิดข้อมูล 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ชนิดข้อมูล Fetch API และเจเนอริกของ Response.json()
  2. การตรวจสอบขณะทำงานด้วย zod (เบื้องต้น)
← กลับไปที่ TypeScript Academy