如何在Typescript中抛出类型错误

如何在Typescript中抛出类型错误,typescript,typeerror,Typescript,Typeerror,我遇到了以下类型脚本问题: 编写一个函数来决定用户是否登录。有时,用户登录时会多次调用它。其他时候,它被称为true。它从来都不是假的 到目前为止,我的代码是: 函数isLoggedIn(参数:数字|布尔值){ 如果(参数===0){ 返回错误 }如果(param==false){ 返回错误 }否则{ 返回真值 } }我假设问题中提到的类型错误不是JS类型错误,而是编译时的类型脚本类型错误,因此类似于: 类型为“false”的参数不可分配给类型为“number | true”的参数。(2345

我遇到了以下类型脚本问题:

编写一个函数来决定用户是否登录。有时,用户登录时会多次调用它。其他时候,它被称为true。它从来都不是假的

到目前为止,我的代码是:

函数isLoggedIn(参数:数字|布尔值){
如果(参数===0){
返回错误
}如果(param==false){
返回错误
}否则{
返回真值
}

}
我假设问题中提到的
类型错误
不是JS
类型错误
,而是编译时的类型脚本类型错误,因此类似于:

类型为“false”的参数不可分配给类型为“number | true”的参数。(2345)

您可以将您的声明更改为:

function isLoggedIn(param: number | true) {
  if (param === 0) {
    return false
  } else {
    return true
  }
}
请参阅
number | true
。此处
true
表示文字“true”值,而不仅仅是布尔值,因此可以传递“true”而不是“false”

您也应该调整内部的
if
条件,因为param永远不会是
false
,如示例中所示。因此,您可以像这样使用它:

isLoggedIn(10); // ok
isLoggedIn(true); // ok
isLoggedIn(false); // TS Error

你可以在这里查看:

我猜他们实际上希望你有
param:number | true
。但是,我同意文本有误导性,因为“类型错误”确实让我想到了TypeError。@VLAZ,它不起作用,不幸的是,提供了您的断言期望代码。我知道了。成功了。非常感谢。我已经为此奋斗了将近一天。