LuaLS / LuaLS/lua-language-server
[Feature request] User defined type guards like TypeScript's one
Abierto
Nadie ha tomado este issue todavía.
enhancement
feat/LuaCats Annotations
feat/type check
- Lenguaje dominante
- Lua
- Estrellas
- 4.4k
- Forks
- 442
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
As a simple example, I would like to annotate the following @guard x string. This is in effect returning a boolean, which narrows down the type of the argument x.
---@param x unknown
---@guard x string
local function isString(x)
return type(x) == "string"
end
---@param x string | number
local function main(x)
if isString(x) then
-- x is string
print(x)
else
-- x is number
print(x)
end
end
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
El issue no menciona archivos, pruebas ni puntos de entrada. Empieza comparando la anotación @guard solicitada y el ejemplo isString con el comportamiento existente de reducción de tipos del servidor de lenguaje. La tarea está terminada cuando los guards definidos por el usuario reducen x a string en la rama true y a number en la rama false.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- lua
- Área
- devtools
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 30/100