Skip to content

@return支持多种类型 #1583

Open
Open
@xiangnanscu

Description

@xiangnanscu

两个方案,大佬参考:
方案一采用语法@return ()|()|()这种

---@return (string,number)|(nil, string)
local function foo()
  do
    return 'foo', 1 --正常
  end
  do
    return nil, 'some error' --正常
  end
  do
    return nil, 1 -- 此处出错
  end
end

方案二,其实我觉得这种更直观,也便于书写

---@return string,number
---@return nil, string
local function foo()
  do
    return 'foo', 1 --正常
  end
  do
    return nil, 'some error' --正常
  end
  do
    return nil, 1 -- 此处出错
  end
end

现在的设定,下面两种定义是等效的

---@return string,number
local function foo() end

---@return string
---@return number
local function foo() end

可见,通过逗号表达式,一条@return语句就可以表达多个值类型,多条连续的@return语法应该留给更重要的多返回类型语法!优雅,简洁!个人愚见,仅供参考

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions