LuaLS / LuaLS/lua-language-server
关于泛型函数
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
How are you using the lua-language-server?
Visual Studio Code Extension (sumneko.lua)
Which OS are you using?
Windows
What is the issue affecting?
Type Checking
Expected Behaviour
使用---@generic T:frame ---@return T
获取到的返回类型好像没办法继承到frame?
fun(T):T 这种写法好像不生效,有什么类似的写法吗
Actual Behaviour
fun里好像没有办法写泛型
Reproduction steps
---@generic T:frame
---@overload fun(name:T):fun(params:table):frame.T
local newframe = setmetatable({},{
__index = frame,
__call = function(self,name)
local class = rawget(self,name)
if class and getmetatable(class) then
return function(param)
return frame(class,param)
end
end
end,
})
---@type frame.button
local a = newframe 'button' {
}
Additional Notes
有什么格式支持这种返回值吗
Log File
No response
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
Commencez par l’annotation générique et la reproduction de setmetatable dans l’issue, puis suivez la manière dont le vérificateur de types traite ---@generic, ---@overload et les types de retour de fun. C’est terminé si le format d’annotation existant infère correctement frame.button ou si la syntaxe prise en charge et ses limitations sont clairement documentées.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- lua
- Domaine
- tooling
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100