Skip to main content

Overview

@alias gives a type expression a name. Use it for long types or types you reuse across your addon.

Syntax

---@alias AliasName TypeExpression

---@alias AliasName
---| "value1" # description
---| "value2" # description

Simple aliases

---@alias ID number
---@alias PlayerName string
---@alias Callback fun(result: any): nil
After you define an alias, use its name anywhere GLuaLS expects a type:
---@param id ID
---@return PlayerName
function GetPlayerName(id) end

Union aliases

---@alias StringOrNumber string | number
---@alias MaybePlayer Player | nil

String literal enumerations

Use ---| to list allowed string values:
---@alias Realm
---| "client" # Runs on clients only
---| "server" # Runs on the server only
---| "shared" # Runs on both server and clients

---@param realm Realm
function SetDefaultRealm(realm) end
When you use this alias as a parameter type, completions show the listed string values.

Generic aliases

---@alias Callback<T> fun(result: T, err: string?): nil
---@alias Pair<K, V> { key: K, value: V }

Common GMod patterns

---@alias HookName string  -- or a union of known hook name literals

---@alias NetMessageName string

---@alias ConVarCallback fun(cv: ConVar, oldVal: string, newVal: string): nil