Gradual Typing Dasar (Type Annotation)
Penjelasan
Luau mendukung gradual typing — sistem tipe yang bersifat opsional, bisa ditambahkan sedikit demi sedikit tanpa mengubah semua kode sekaligus. Anotasi ditulis dengan titik dua setelah nama variabel atau parameter, misalnya `nama: string`. Tanpa anotasi, variabel tetap dianggap `any` seperti Lua dinamis biasa. Manfaat utama gradual typing adalah linter dan editor (seperti Luau Analyze atau Roblox Studio) bisa mendeteksi kesalahan tipe sebelum kode dijalankan, mengurangi bug runtime yang umum terjadi di bahasa dinamis tanpa mengorbankan fleksibilitas Lua yang tetap bisa ditulis tanpa tipe kalau mau.
Contoh Konsep
-- Anotasi tipe pada variabel
local nama: string = "Pemain1"
local nyawa: number = 100
local aktif: boolean = true
-- Anotasi tipe pada parameter dan return value fungsi
local function kurangiNyawa(nyawaSekarang: number, jumlah: number): number
return nyawaSekarang - jumlah
end
local nyawaBaru = kurangiNyawa(nyawa, 20)
print(nyawaBaru)
-- Tipe opsional dengan tanda tanya
local function cariPemain(nama: string): Player?
return game.Players:FindFirstChild(nama)
end
Praktikum
Tulis fungsi hitungTotalHarga(harga: number, jumlah: number): number yang mengembalikan hasil perkalian harga dan jumlah, lengkap dengan anotasi tipe parameter dan return value.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Mulai dari anotasi pada parameter fungsi publik/API antar modul dulu, karena di situlah kesalahan tipe paling sering menimbulkan bug tersembunyi antar bagian kode yang berbeda.