在 Java 中我会声明一个这样的函数:
public boolean Test(boolean test) throws Exception {
if (test == true)
return false;
throw new Exception();
}
我可以使用这个函数而不处理异常。
如果可以的话,如何在 Typescript 中做同样的事情?编译器会告诉我如果没有 try/catch 就无法使用该函数。
TypeScript 中没有这样的功能。仅当函数返回错误而不是抛出错误时,才可以指定错误类型(这种情况很少发生,并且很容易出现反模式)。
唯一相关的类型是never https://www.typescriptlang.org/docs/handbook/basic-types.html#never。仅当函数明确抛出错误时才适用,它不能比这更具体。它和其他类型一样,只要不导致类型问题,就不会导致类型错误:
function Test(): never => {
throw new Error();
}
Test(); // won't cause type error
let test: boolean = Test(); // will cause type error
当函数有可能返回值时,never
被返回类型吸收。
可以在函数签名中指定它,但仅供参考:
function Test(test: boolean): boolean | never {
if (test === true)
return false;
throw new Error();
}
它可以向开发人员提示可能存在未处理的错误(如果从函数体中不清楚),但这不会影响类型检查,也不能强制try..catch
;考虑该函数的类型(test: boolean) => boolean
通过打字系统。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)