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 เป็นพารามิเตอร์ชนิดทั่วไป ซึ่งโดยพื้นฐานแล้วมันหมายความว่าคุณไม่จำเป็นต้องระบุประเภทของวัตถุที่ชัดเจน
