问题标签 [sorbet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
894 浏览

ruby - 冰糕询问 `attr_reader` 的 `sig`

Sorbet 显示 attr_reader 错误,但如果我错了,请纠正我,声明函数时需要 sigs,而不是调用函数,对吧?

我试过浏览文档,但我得到的只是这个注释

注意:许多看起来像局部变量的 Ruby 结构实际上是没有括号的方法调用!具体来说,注意 attr_reader 和零参数方法定义。

0 投票
1 回答
210 浏览

ruby - 如何让“你的意思是……?”保持沉默 冰糕错误的建议?

我开始将Sorbet介绍给代码库。每次我将文件从 切换typed: falsetyped: true时,我的类的方法都会出现大量错误,而我尚未添加 RBI 文件或签名。这很好,也是意料之中的。

但是,这些错误被更多关于标准库和 gems 中类似名称方法的假定拼写错误的建议所淹没。我想这个功能以后会很方便,但在这个早期阶段我想把它关掉。如何?

(我查看了srb tc --help0.4.4239 版本,但没有成功。)

0 投票
1 回答
847 浏览

ruby - 你将如何使用 Sorbet 进行玫瑰记忆?

尝试注释此代码时,rose memoization ( @||=) 给了我一个错误Use of undeclared variable @git_sha

据我发现,我应该声明变量的类型,T.let但还没有具体弄清楚如何。

0 投票
1 回答
301 浏览

ruby - Sorbet 是否为标准库添加签名?

我希望 Sorbet 在编写这样的代码时发出警告:

正如我所期望Array#sort!的那样void

0 投票
1 回答
980 浏览

sorbet - vscode的插件

我正在尝试在 Rails 项目上测试 Sorbet。

  • 遵循收养指南
  • 安装并运行gem sorbet-rails
  • 变成# typed: true
  • 重启vscode

但什么都没有真正发生,我想我错过了这个难题的一部分。有没有人找到让 Sorbet 与 Vs Code 一起使用的解决方案

谢谢

0 投票
1 回答
598 浏览

ruby - 我可以在方法签名中指定鸭子类型吗?

这是示例代码:

在它上面运行srb tc失败

我看到了几种解决方法:

  1. .returns(T.any(KeyGetter, KeyGetter::Null))在 sig 中使用类似的东西。
  2. 使KeyGetter::Null继承自KeyGetter.
  3. 提取一个“接口”并期待它。

    /li>

但是我想知道(并且在文档中没有找到)是:我可以描述鸭子类型吗?就像我们可以在 YARD 中做的那样,例如:

或者它是一个天生有缺陷的想法(因为理想情况下我们也需要注释鸭子类型的方法。并且在这样做时不要迷失在语法中)。

所以是的,我们可以在这里对鸭子类型进行内联注释吗?如果不是,我们应该怎么做?

0 投票
2 回答
88 浏览

sorbet - 关于冰糕设置的问题:如何消除步骤 4 中的错误

在此处的文档中https://sorbet.org/docs/adopting#step-4-fix-constant-resolution-errors它指出:

此时,我们的项目中可能有很多错误,但 Sorbet 默认将它们静音。我们的下一项工作是消除它们的沉默,然后解决根本原因。根据经验,人们在这一步会遇到几类错误:

但没有说如何消除错误

我查看了文档,以及此处的问题和以前标记的问题。也尝试了srb tc -handsrb rbi -h命令,但到目前为止什么也没发现 - 这只是关于交换 typed: false 到其他设置之一吗?

0 投票
1 回答
498 浏览

sorbet - 如何正确运行“srb tc --lsp”?

我正在尝试运行 srb tc --lsp 并遇到此问题。srb tc工作正常。

我试图给它一条路径,但它不起作用:

正确的跑步方式是srb tc --lsp什么?

编辑:原来sorbet/config我拥有的文件有多个文件夹

它在删除时有效,@sorbet/rbi_list但我需要它来包含宝石中的 rbis。

有什么解决方法吗?

0 投票
2 回答
869 浏览

ruby - 如何指定类型参数

如何使用冰糕指定类型参数?

例如,我想使用A返回泛型类型的参数来注释方法T[A]

输出类型取决于输入类型:

0 投票
1 回答
244 浏览

ruby - 如何显示泛型类型

我有以下泛型类型定义:

当我透露 的类型时#value,我期待它是Integer,但它是T.untyped

我知道可以显式指定参数的类型A[Integer].new(42),但这样我不能将保留类型信息单独放在.rbi文件中。

注释泛型类型的正确方法是什么?