dart - 有限类型作为 Dart linting 中的传递参数
问题描述
我想利用飞镖的静态类型优势并将函数的传入类型限制为特定类。在撰写本文时,我还没有想到实现这一目标的设计(如果可能的话)。
希望:
abstract class UpperClass {}
class Class1 extends UpperClass {}
class Class2 extends UpperClass {}
class Class3 {}
void justAcceptSpecific(Type type) => print("doesn't matter");
void main() {
justAcceptSpecific(Class2); // works
justAcceptSpecific(Class3); // linting should show wrong type
justAcceptSpecific(2); // error like here
}
我考虑过使用抽象类,但问题是,我不想传递对象,而只是传递类型。
这将按预期工作(但它通过对象 :/ ):
abstract class UpperClass {}
class Class1 extends UpperClass {}
class Class2 extends UpperClass {}
class Class3 {}
void justAcceptSpecific(UpperClass type) => print("doesn't matter");
void main() {
justAcceptSpecific(Class2());
justAcceptSpecific(Class3()); // linting shows wrong type, which is like it should be
}
如果这是相关的,我打算在构造函数中使用它,并且为了简单起见,我只是在这里将我的示例作为函数调用。
解决方案
推荐阅读
- ssl - Openssl:我在 1.0.2 和 1.1.1 中使用相同的 TLS 和 CipherSuite,但它们的行为不同
- python - 如何获取表格的 TFIDF
- java - 当涉及类型参数时,为什么 Java 无法找出一些明显的非法转换?
- python - TypeError: 'int' object is not callable - 在一种情况下接受为列表,但在另一种情况下接受为 int
- python-3.x - 如何在 GET 请求中返回 json 响应?
- kubernetes - 不允许 Gitlab 部署到 Kubernetes 命名空间
- extendscript - 如何在扩展脚本中使用#include 和面板类型窗口?
- sql - 如何根据条件仅从该表中选择唯一值?
- html - Powershell,IText7 用百分比破坏表格 td 宽度
- python - discord.py 将机器人活动设置为自定义活动