Study
Luau

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.

Editor Latihan

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.