typescript - 获取 TypeScript 以捕获“this”类型不匹配错误?
问题描述
假设我有一个具有如下功能的模块:
export module Network
{
export function savePrefs( globals:Globals )
{
// [save globals.prefs to the database...]
}
}
最初我有调用它的代码是 Globals 类的一部分,因此它使用以下方法调用上述方法:
Network.savePrefs(this);
因为,作为 Globals 类中的实例方法,“this”变量指的是 Globals 实例。但后来我决定将该方法移动到一个模块中,而忘记更改“this”:
export module Utils
{
upgradePrefs(globals:Globals)
{
// [... upgrade stuff....] //
Network.savePrefs(this); // OOPS!
}
}
TypeScript 不会为此生成错误。
发生这种情况时,我想让 TypeScript 给我一个错误,因为“this”与被调用的方法所需的类型(全局)不匹配。使用某种编译器配置选项可能吗?
解决方案
听起来您可能缺少noImplicitThis
编译器选项,这会导致对this
不在已知this
类型(例如类)的上下文中的引用生成错误而不是 type any
。您可能想要打开strict
(其中包括noImplicitThis
许多其他有用的选项),然后关闭strict
您不想要的任何选项。
推荐阅读
- javascript - JavaScript If 语句未正确比较变量
- html - 如何使用 CSS 在 n 个字符后中断?
- java - 如何使用 SnakeYaml 对 YAML 中的节点进行排序?
- c - 浅/深拷贝术语是否适用于没有引用的对象?
- postgresql - 从子查询 postgresql 更新列中的所有字段
- java - 为什么没有使用 Postgres docker hub 映像在我的 docker 映像中安装 Java
- c# - 为什么我的 Button 不适用于 Unity 类中的方法?
- python - 在 Pandas 中使用 .columns
- r - 按列值在 R 中出现的概率对数据进行分组
- networking - 微服务扩展/插件架构