在 lua 中键入 hinting/specifying 类型

Type hinting/specifying a type in lua

python 中有一项功能,您可以在其中 指定变量或函数的类型 争论什么的,但我正在做一些 lua 现在我想指定一个类型作为我的 自动完成显示类型 any 所以我认为 lua 可能也有那个功能

基本上我有一个名为 log 的函数:

local function log(message)
    io.stderr:write(string.format(" :: %s\n", message))
end

有没有办法指定 arg 的类型 message 和/'or at least' return 类型? 我希望它是一个字符串:)

在 python 中是:

import sys

def log(message: str) -> None:
    sys.stderr.write(f" :: {message}\n")

Lua 不支持类型注解。您的选择如下:

  1. 使用支持类型
  2. 的 Lua 预处理器,例如 TS2Lua or Teal
  3. 使用 asserts 检查参数类型,如果不匹配则抛出运行时错误:assert(type(message) == "string");如果您向参数列表
  4. 添加一个额外的可变参数 ...,您还可以使用 assert(select("#", ...) == 0) 来检查元数
  5. 使用注释来内联记录类型,可能与支持注释的文档生成器结合使用:local function log(message --[[string]]) --> nothing