คู่มือนี้จะอธิบายประเภทยูทิลิตี้ 'ละเว้น' ใน TypeScript
ประเภทการละเว้นใน TypeScript คืออะไร
“ ละเว้น ” ประเภทยูทิลิตี้สร้างประเภทใหม่โดยไม่รวมคุณสมบัติที่ไม่จำเป็นของประเภทพื้นฐาน ประเภทพื้นฐานแสดงถึงประเภทที่มีอยู่ซึ่งเป็นที่มาของประเภทใหม่
ไวยากรณ์
พิมพ์ NewType = ละเว้น < ประเภทที่มีอยู่ 'ชื่อคุณสมบัติ1' | 'ชื่อคุณสมบัติ2' | ... >
ไวยากรณ์ข้างต้นสามารถ “ ละเว้น ” คุณสมบัติหลายประการของ “ ประเภทที่มีอยู่ ” โดยแยกพวกมันออกด้วยความช่วยเหลือของ “ หรือ (|)” ตัวดำเนินการ
ลองใช้ยูทิลิตี้ประเภท 'ละเว้น' ที่กำหนดไว้ข้างต้นในทางปฏิบัติ
ตัวอย่างที่ 1: การใช้ “Omit” ด้วย Type Alias
ตัวอย่างนี้ใช้ประเภทยูทิลิตี “Omit
รหัส
คัดลอกบรรทัดโค้ดที่กำหนดในไฟล์ '.ts' ของโครงการ TypeScript:
พิมพ์ผู้ใช้ = {ชื่อ : : เชือก,
อายุ : : ตัวเลข,
ที่ตั้ง : : เชือก
} ;
พิมพ์ UserWithoutAge = ละเว้น < ผู้ใช้ 'อายุ' >;
ค่าคงที่ ผู้ใช้โดยไม่ต้อง : : ผู้ใช้ไม่มีอายุ = {
ชื่อ : : 'หรือ' ,
ที่ตั้ง : : 'อิสลามาบัด'
} ;
คอนโซล บันทึก ( ผู้ใช้โดยไม่ต้อง ) ;
ในรหัสนี้:
- “ ผู้ใช้ ” ถูกกำหนดด้วยชื่อคุณสมบัติ อายุ และที่ตั้งที่ระบุ
- ต่อไป “ ผู้ใช้ไม่มีอายุ ” ประเภทใหม่จะถูกสร้างขึ้นจากประเภท “ผู้ใช้” ที่มีอยู่โดยการยกเว้นคุณสมบัติ “อายุ” โดยใช้เครื่องหมาย “ ละเว้น ” ประเภทยูทิลิตี้
- หลังจากนั้นวัตถุ” ผู้ใช้โดยไม่ต้อง ” ประเภท “UserWithoutAge” ถูกสร้างขึ้นโดยระบุฟิลด์ทั้งหมดของประเภท “ผู้ใช้” ที่มีอยู่ ยกเว้น “อายุ”
- สุดท้ายนี้ “ console.log() ” ใช้เพื่อแสดงวัตถุ “userwithoutage”
เอาท์พุต
รวบรวมไฟล์ “.ts” และเรียกใช้ไฟล์ “.js” ที่สร้างขึ้นโดยอัตโนมัติ:
ทีเอสซีหลัก เจส //ไฟล์ Compile.tsโหนดหลัก เจส //เรียกใช้ไฟล์ .js
จะเห็นได้ว่าเทอร์มินัลแสดงเอาต์พุตของวัตถุประเภทใหม่ “UserWithoutAge”
ตัวอย่างที่ 2: การใช้ประเภท “Omit” ด้วยอินเทอร์เฟซ
ตัวอย่างนี้ใช้ประเภทยูทิลิตี “Omit
รหัส
อินเตอร์เฟซ ผู้ใช้ {ชื่อ : : เชือก ;
อายุ : : ตัวเลข ;
ที่ตั้ง : : เชือก ;
}
พิมพ์ บุคคลใหม่ = ละเว้น < ผู้ใช้ 'อายุ' | 'ที่ตั้ง' >;
ค่าคงที่ บุคคล : : คนใหม่ = {
ชื่อ : : 'หรือ'
} ;
คอนโซล บันทึก ( บุคคล ) ;
ตอนนี้บรรทัดโค้ดที่ระบุ:
- กำหนดอินเทอร์เฟซ” ผู้ใช้ ” โดยมีชื่อคุณสมบัติ สตริง และตำแหน่งดังต่อไปนี้
- ต่อไปก็สร้างรูปแบบใหม่” คนใหม่ ” จากอินเทอร์เฟซที่มีอยู่ “ผู้ใช้” ไม่รวมคุณสมบัติอายุและที่ตั้งที่ระบุ
- หลังจากนั้นให้สร้างวัตถุประเภท “NewPerson” ใหม่ชื่อ “ บุคคล ” โดยระบุคุณสมบัติเดียวเท่านั้น เช่น “ชื่อ” ของอินเทอร์เฟซ “ผู้ใช้” ที่มีอยู่
- สุดท้ายนี้ แสดงฟิลด์ของวัตถุ 'บุคคล' โดยใช้เครื่องหมาย ' console.log() ' วิธี.
เอาท์พุต
รวบรวมและรันโค้ด:
ทีเอสซีหลัก เจส //ไฟล์ Compile.tsโหนดหลัก เจส //เรียกใช้ไฟล์ .js
เทอร์มินัลแสดงเพียงค่าคุณสมบัติของประเภทใหม่ 'บุคคลใหม่' ที่ระบุในออบเจ็กต์เท่านั้น
ตัวอย่างที่ 3: การใช้ประเภท “Omit” ด้วย Function()
ตัวอย่างนี้ใช้ประเภท “Omit
รหัส
อินเตอร์เฟซ ผู้ใช้ {ชื่อ : : เชือก ;
อายุ : : ตัวเลข ;
ที่ตั้ง : : เชือก ;
}
ฟังก์ชัน getUserDetails ( ผู้ใช้ใหม่ : : ละเว้น < ผู้ใช้ 'ชื่อ' | 'ที่ตั้ง' > ) : : ตัวเลข {
กลับ ( ผู้ใช้ใหม่. อายุ )
}
ค่าคงที่ ผู้ใช้ใหม่ : : ผู้ใช้ = {
อายุ : : 40 ,
ชื่อ : : 'หรือ' ,
ที่ตั้ง : : 'อิสลามาบัด'
} ;
ค่าคงที่ รายละเอียดผู้ใช้ = getUserDetails ( ผู้ใช้ใหม่ ) ;
คอนโซล บันทึก ( รายละเอียดผู้ใช้ ) ;
ข้อมูลโค้ดด้านบน:
- ขั้นแรกให้สร้างอินเทอร์เฟซ “ ผู้ใช้ ” มีคุณสมบัติชื่อ อายุ และที่ตั้ง
- ต่อไปให้กำหนดชื่อฟังก์ชัน “ getUserรายละเอียด() ” ที่ละเว้นคุณสมบัติ “ชื่อ” และ “ตำแหน่ง” ประเภท “ผู้ใช้ใหม่” ของอินเทอร์เฟซที่มีอยู่ เช่น “ผู้ใช้”
- ฟังก์ชันนี้ส่งคืนค่าตัวเลข เช่น “อายุ” ของผู้ใช้
- ตอนนี้สร้างวัตถุของ “ ผู้ใช้ใหม่ ” ของอินเทอร์เฟซ “ผู้ใช้” เพื่อระบุค่าคุณสมบัติ
- หลังจากนั้นให้เรียกใช้ฟังก์ชัน 'getUserDetails()' ที่กำหนดไว้โดยส่งผ่านอ็อบเจ็กต์ 'newuser' เป็นพารามิเตอร์ด้วยความช่วยเหลือของ ' รายละเอียดผู้ใช้ ' คงที่.
- สุดท้ายแสดงเอาต์พุต 'userDeatils' ผ่านทาง ' console.log() ' วิธี.
เอาท์พุต
ทีเอสซีหลัก เจส //ไฟล์ Compile.tsโหนดหลัก เจส //เรียกใช้ไฟล์ .js
เทอร์มินัลจะแสดงเฉพาะ “ อายุ ” มูลค่าทรัพย์สินเนื่องจาก “ชื่อ” และ “ที่ตั้ง” ถูกแยกออกผ่านประเภทยูทิลิตี้ “ละเว้น”
บทสรุป
ใน TypeScript ประเภทยูทิลิตี้ “ ละเว้น ” นำประเภทที่มีอยู่เป็นพารามิเตอร์แรกและสร้างประเภทใหม่โดยไม่รวมคุณสมบัติบางอย่างของประเภทที่มีอยู่ ประเภทยูทิลิตี้นี้ช่วยในการทำซ้ำประเภทที่มีอยู่สำหรับการสร้างประเภทใหม่ที่มีคุณสมบัติบางอย่างแทนที่จะสร้างประเภทใหม่ตั้งแต่ต้น สามารถใช้กับนามแฝง “ประเภท” อินเทอร์เฟซ และฟังก์ชันได้ คู่มือนี้อธิบายอย่างลึกซึ้งเกี่ยวกับประเภทยูทิลิตี้ 'ละเว้น' ใน TypeScript