number
หรือ integer
จะใช้กับอีกตัวไม่ได้ เช่นany[]
แทนได้ แต่การคืนค่า any
ออกมา ไม่ใช่เรื่องที่ดี เพราะจะเสียความ Type-safe ไป<T>
แล้วนำค่า T
ไปใช้ต่อเป็นพารามิเตอร์ หรือค่า Return ได้ และเราจะเรียก T
ว่าเป็นตัวแปรแบบ "Type Variable" (ไม่ได้บังคับว่าต้องเป็นตัว T สามารถใช้ตัวอื่นได้ แต่ปกติแล้วจะใช้ตัว T เพื่อความเข้าใจตรงกันว่าเป็นตัวแปรสำหรับ Type)number
และ string
แต่ที่จริงแล้วเราไม่ต้องใส่ Type Variable เลยก็ได้ แล้ว TypeScript จะจัดการอนุมาน Type ให้เราเอง เรียกว่า Type Argument Inferencemap
:input
เป็น string[]
arr
ต้องเป็น T[]
T
เป็น string
map
:(s) => parseInt(s)
เป็นฟังก์ช้่นที่ Return parseInt()
ซึ่งเป็นฟังก์ชั่นที่จะคืน number
func
ต้องเป็น (arg: string) => U
U
เป็น number
U[]
สรุปได้ว่าฟังก์ชั่น map
นี้จะคืนค่าเป็น number[]
หรืออาเรย์ของตัวเลข (เฉพาะในกรณีmap(input, (s) => parseInt(s))
เท่านั้น ถ้าเรียกใช้แบบอื่น ค่า Return จะขึ้นอยู่กับฟังก์ชั่นที่ใส่เข้าไป)