首页 > 解决方案 > call() 没有返回正确的类型

问题描述

我有以下打字稿:

let fn = function (): boolean {
    return true
}

let res1: number

res1 = fn.call(null) // Should error

我不应该被允许分配res1,因为它被声明为number并且结果fn.call()boolean. 检查在操场

这是一个问题,但它已修复,所以我做错了吗?

标签: typescript

解决方案


有一个特殊的编译器选项(在操场上不可用)可以生成call并保留正确的类型bindapply

选项是strictBindCallApply ,您可以在此处阅读:

对函数的绑定、调用和应用方法进行更严格的检查。

将此选项设置为 true 您的代码将按预期出错。


推荐阅读