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

พื้นฐาน .d.ts; export type เทียบกับ export

เรียนรู้พื้นฐานไฟล์ประกาศ ได้แก่ การประกาศแบบแอมเบียนต์เทียบกับการประกาศโมดูล export type เทียบกับ export และการสร้าง DX ที่ถูกต้องสำหรับผู้ใช้

พื้นฐาน .d.ts; export type เทียบกับ export เป็นบทเรียน TypeScript Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 2 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน TypeScript Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 2 บทเรียน

บทนำ

เป้าหมาย: เขียนไฟล์ .d.ts ที่มีประโยชน์ คุณจะเรียนรู้การประกาศแบบแอมเบียนต์เทียบกับการประกาศโมดูล วิธีประกาศสิ่งที่ส่งออก และเวลาที่ควรใช้ export type เทียบกับ export

  • บริบทแบบแอมเบียนต์เทียบกับบริบทโมดูล
  • การส่งออกเฉพาะชนิดเทียบกับการส่งออกค่า
  • แนวทางปฏิบัติที่ดี

การประกาศแบบแอมเบียนต์

ใช้ declare global เพื่อขยายขอบเขตส่วนกลาง เพิ่ม export {} เพื่อทำเครื่องหมายไฟล์ให้เป็นโมดูลและหลีกเลี่ยงความขัดแย้ง

// globals.d.ts
// Ambient declaration: no import/export, augments global scope
declare global {
  interface Window {
    APP_VERSION: string
  }
}

export {} // ensures this file is a module

การประกาศโมดูล

declare module ใช้อธิบายรูปร่างของแพ็กเกจภายนอก ใช้การส่งออกภายในเพื่อจำลองสิ่งที่ JS มีให้

// types/index.d.ts
// Declare a module with exports
declare module "mylib" {
  export function greet(name: string): string
  export const version: string
}

export type เทียบกับ export

export type (หรือ interface) ใช้สำหรับโครงสร้างที่มีเฉพาะชนิด ใช้ export สำหรับฟังก์ชัน ค่าคงที่ คลาส—สิ่งที่มีอยู่ขณะทำงาน

// shapes.d.ts
export type Point = { x: number; y: number }

export interface User {
  id: string
  name: string
}

export function distance(a: Point, b: Point): number
export const VERSION: string

การเพิ่มส่วนขยายให้โมดูล

คุณสามารถเพิ่มส่วนขยายให้โมดูลที่มีอยู่ได้โดยเปิดโมดูลนั้นอีกครั้งในไฟล์ประกาศอื่น ซึ่งมีประโยชน์สำหรับแก้ไขแพ็กเกจจากผู้ให้บริการรายอื่น

// augment.d.ts
import "mylib"
declare module "mylib" {
  export function extra(): void
}

แนวทางปฏิบัติที่ดี

แนวทางปฏิบัติที่ดี:

  • ทำให้ .d.ts มีเนื้อหาน้อยที่สุด และหลีกเลี่ยงค่าทั่วโลกที่ไม่จำเป็น
  • แยกการส่งออกเฉพาะชนิดออกจากการส่งออกค่าให้ชัดเจน
  • ทดสอบไฟล์ประกาศด้วย tsc --noEmit และการใช้งานตัวอย่าง

การตรวจสอบ export type

ตรวจสอบอย่างรวดเร็ว: ควรใช้ export type เมื่อใด

สรุปทบทวน

สรุปทบทวน: ไฟล์ .d.ts ใช้ประกาศชนิดโดยไม่มีการนำไปใช้งาน ใช้ declare global หรือ declare module แยก export type ออกจาก export และปฏิบัติตามแนวทางที่ดี

คำถามที่พบบ่อย

บทเรียน “พื้นฐาน .d.ts; export type เทียบกับ export” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “พื้นฐาน .d.ts; export type เทียบกับ export” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส TypeScript Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 2 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “พื้นฐาน .d.ts; export type เทียบกับ export”

เรียนรู้พื้นฐานไฟล์ประกาศ ได้แก่ การประกาศแบบแอมเบียนต์เทียบกับการประกาศโมดูล export type เทียบกับ export และการสร้าง DX ที่ถูกต้องสำหรับผู้ใช้ คุณปฏิบัติ TypeScript Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน TypeScript Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน TypeScript Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 2 บทเรียน

บทเรียน “พื้นฐาน .d.ts; export type เทียบกับ export” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน TypeScript Academy นี้ได้ไหม

ได้ บทเรียน TypeScript Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. พื้นฐาน .d.ts; export type เทียบกับ export
  2. การเผยแพร่แพ็กเกจพร้อมชนิดข้อมูล
← กลับไปที่ TypeScript Academy