问题标签 [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.
ruby - 冰糕询问 `attr_reader` 的 `sig`
Sorbet 显示 attr_reader 错误,但如果我错了,请纠正我,声明函数时需要 sigs,而不是调用函数,对吧?
我试过浏览文档,但我得到的只是这个注释
注意:许多看起来像局部变量的 Ruby 结构实际上是没有括号的方法调用!具体来说,注意 attr_reader 和零参数方法定义。
ruby - 如何让“你的意思是……?”保持沉默 冰糕错误的建议?
我开始将Sorbet介绍给代码库。每次我将文件从 切换typed: false
到typed: true
时,我的类的方法都会出现大量错误,而我尚未添加 RBI 文件或签名。这很好,也是意料之中的。
但是,这些错误被更多关于标准库和 gems 中类似名称方法的假定拼写错误的建议所淹没。我想这个功能以后会很方便,但在这个早期阶段我想把它关掉。如何?
(我查看了srb tc --help
0.4.4239 版本,但没有成功。)
ruby - 你将如何使用 Sorbet 进行玫瑰记忆?
尝试注释此代码时,rose memoization ( @||=
) 给了我一个错误Use of undeclared variable @git_sha
。
据我发现,我应该声明变量的类型,T.let
但还没有具体弄清楚如何。
ruby - Sorbet 是否为标准库添加签名?
我希望 Sorbet 在编写这样的代码时发出警告:
正如我所期望Array#sort!
的那样void
sorbet - vscode的插件
我正在尝试在 Rails 项目上测试 Sorbet。
- 遵循收养指南
- 安装并运行
gem sorbet-rails
- 变成
# typed: true
- 重启vscode
但什么都没有真正发生,我想我错过了这个难题的一部分。有没有人找到让 Sorbet 与 Vs Code 一起使用的解决方案
谢谢
ruby - 我可以在方法签名中指定鸭子类型吗?
这是示例代码:
在它上面运行srb tc
失败
我看到了几种解决方法:
.returns(T.any(KeyGetter, KeyGetter::Null))
在 sig 中使用类似的东西。- 使
KeyGetter::Null
继承自KeyGetter
. 提取一个“接口”并期待它。
/li>
但是我想知道(并且在文档中没有找到)是:我可以描述鸭子类型吗?就像我们可以在 YARD 中做的那样,例如:
或者它是一个天生有缺陷的想法(因为理想情况下我们也需要注释鸭子类型的方法。并且在这样做时不要迷失在语法中)。
所以是的,我们可以在这里对鸭子类型进行内联注释吗?如果不是,我们应该怎么做?
sorbet - 关于冰糕设置的问题:如何消除步骤 4 中的错误
在此处的文档中https://sorbet.org/docs/adopting#step-4-fix-constant-resolution-errors它指出:
此时,我们的项目中可能有很多错误,但 Sorbet 默认将它们静音。我们的下一项工作是消除它们的沉默,然后解决根本原因。根据经验,人们在这一步会遇到几类错误:
但没有说如何消除错误
我查看了文档,以及此处的问题和以前标记的问题。也尝试了srb tc -h
andsrb rbi -h
命令,但到目前为止什么也没发现 - 这只是关于交换 typed: false 到其他设置之一吗?
sorbet - 如何正确运行“srb tc --lsp”?
我正在尝试运行 srb tc --lsp 并遇到此问题。srb tc
工作正常。
我试图给它一条路径,但它不起作用:
正确的跑步方式是srb tc --lsp
什么?
编辑:原来sorbet/config
我拥有的文件有多个文件夹
它在删除时有效,@sorbet/rbi_list
但我需要它来包含宝石中的 rbis。
有什么解决方法吗?
ruby - 如何指定类型参数
如何使用冰糕指定类型参数?
例如,我想使用A
返回泛型类型的参数来注释方法T[A]
。
输出类型取决于输入类型:
ruby - 如何显示泛型类型
我有以下泛型类型定义:
当我透露 的类型时#value
,我期待它是Integer
,但它是T.untyped
:
我知道可以显式指定参数的类型A[Integer].new(42)
,但这样我不能将保留类型信息单独放在.rbi
文件中。
注释泛型类型的正确方法是什么?