我可以让TypeScript揭示它为表达式确定的类型吗?

时间:2019-07-07 00:25:11

标签: typescript

我有一些类似以下的代码,我想确定TypeScript为表达式推断的类型:

var timer = window.setTimeout(...);
/* QUESTION: What is the inferred type of "timer" here? */

当我将mypy类型检查器用于Python时,可以将特殊表达式reveal_type(my_expression)插入代码中,以使类型检查器打印出包含表达式my_expression的推断类型的假错误。

有没有办法让TypeScript tsc类型检查器提供有关表达式的推断类型的类似信息?

1 个答案:

答案 0 :(得分:3)

我不知道 reveal_type 的等效项,但您可以强制进行无效分配并检查产生的错误消息。分配给 never 总是失败1,所以在你的例子中:

var timer = window.setTimeout(...);
const revealType : never = timer;

应该导致编译器打印:

Type 'number' is not assignable to type 'never'

1 除非您正在检查的类型也是 never