ค้นหาเว็บไซต์

d3.js - ประเภทแบบ SomeType ใน TypeScript หมายความว่าอะไร?


ฉันกำลังใช้ d3 กับ typescript และมีประเภทมากมายใน d3 ที่เป็นแบบนี้ SomeType<U,T,V> ตัวอย่าง:

merge(other: Selection<GElement, Datum, PElement, PDatum>): Selection<GElement, Datum, PElement, PDatum>

ฉันได้ดูเอกสารประเภทขั้นสูงแล้วแต่ไม่เข้าใจว่าประเภทเหล่านี้หมายความว่าอย่างไร ฉันบอกไม่ได้ว่ามันเป็นประเภท Selection ที่มีประเภทย่อยเหล่านี้หรืออะไรก็ตาม

คำตอบ #1

พวกนั้นคือเจเนอริก และพูดง่าย ๆ คือมันช่วยให้คุณพารามิเตอร์ไทป์ ทำให้คุณสามารถส่งไทป์อื่นเข้าไปในนั้นได้

ดังนั้นเพื่อใช้ตัวอย่างของคุณ คุณอาจทำอะไรบางอย่างเช่น:

interface SomeType<T, U, V> {
  t: T
  u: U
  v: V
}

const foo: SomeType<string, number, { cool: boolean }> = {
  //                T       U       V
  t: 'a string',
  u: 123,
  v: { cool: true }
}

สนามเด็กเล่น

มีเอกสารเกี่ยวกับเจเนอริกมากมายที่นี่: https://www.typescriptlang.org/docs/handbook/generics.html

คำตอบ #2

ฉันไม่แน่ใจเกี่ยวกับ TypeScript แต่โดยน้อยที่สุดในภาษาอื่นบางภาษาเช่น C# ประเภท T เป็นพารามิเตอร์ชนิดทั่วไป ซึ่งโดยพื้นฐานแล้วมันหมายความว่าคุณไม่จำเป็นต้องระบุประเภทของวัตถุที่ชัดเจน

บทความที่เกี่ยวข้อง