การกำหนด Type ในฟังก์ชั่น
นอกจากการกำหนด Type ให้กับตัวแปรต่างๆ แล้ว ในกรณีของฟังก์ชั่น เราสามารถกำหนด Type ให้กับพารามิเตอร์ แ ละค่าที่จะ Return ได้
function say(word: string, times: number) {
[...Array(times).keys()].forEach(() => {
console.log(word)
})
}
ฟังก์ชั่น
say
มีพารามิเตอร์ 2 ตัว โดยตัวแรก (word
) เป็น String และตัวที่สอง (times
) เป็น Numbersay("Very Good", 3) // OK
say("กล้ามาก", "เก่งมาก")
// Argument of type 'string' is not assignable to parameter of type 'number'.
หมายเหตุ ค่าตัวแปรในฟังก์ชั่นเรียกว่า Parameter แต่ค่าที่ส่งเข้าไปตอนเรียกฟังก์ชั่นเรียกว่า Argument
เป็นการกำหนดว่า ค่าที่ส่งกลับมาจากฟังก์ชั่นจะเป็น Type ใด (ในตัวอย่างขอละ Parameter Type เพื่อความเข้าใจง่าย) โดยการกำหนด Return type จะเติมเข้าไปด้านหลัง Parameter ทั้งหมด
function sum(a, b): number {
return a + b
}
หรือในกรณีที่เขียนเป็น Arrow Function จะไว้หลัง Parameter เช่นกัน แต่อยู่ด้านหน้าของ
=>
const sum = (a, b): number => {
return a + b
}
// แบบ One-liner
const sum = (a, b): number => a + b
ในกรณีที่ฟังก์ชั่นไม่คืนค่าเลย ให้ใช้
void
function say(word, times): void {
[...Array(times).keys()].forEach(() => {
console.log(word)
})
}
และอีกกรณีที่พบบ่อย คือฟังก์ชั่นที่เป็น Asynchronous ที่มีคีย์เวิร์ด
async
เราจะต้อง Return Promise<>
โดยห่อค่าที่จะคืนเอาไว้ เช่นการเรียกใช้ APIconst fetchUser = async (url: string): Promise<User> => { // ไม่ใช้ User เฉยๆ
const response = await fetch(url)
const { data } = await response.json()
return data
}
User คือ Interface ที่กำหนดขึ้นมาเอง ซึ่งจะอธิบายถึงวิธีในการสร้าง Interface ในบทต่อไป
Last modified 2yr ago