LuaLS / LuaLS/lua-language-server
[Feature request] User defined type guards like TypeScript's one
Personne n'a encore pris cette issue.
- Langage dominant
- Lua
- Étoiles
- 4.4k
- Forks
- 442
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
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
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
L’issue ne mentionne aucun fichier, test ou point d’entrée. Commencez par comparer l’annotation @guard demandée et l’exemple isString avec le comportement existant de restriction de type du serveur de langage. La tâche est terminée lorsque les guards définis par l’utilisateur restreignent x à string dans la branche true et à number dans la branche false.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- lua
- Domaine
- devtools
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 30/100