never
我在 TS Habr、Medium、SO.en、SO.ru中阅读了很多关于类型的资源,还观看了视频课程。
到处都在说在无限循环中使用相同的东西,never
在存在无限循环、错误或递归的函数中。
function error(message: string): never {
throw new Error(message);
}
function infiniteLoop(): never {
while (true) {
}
}
function infiniteRec(): never {
return infiniteRec();
}
到处都是标准文本。但是我还是不明白怎么用?没有可以戳看的工作代码。
我尝试使用never
书面的无限循环,但没有奏效。没明白为什么?怎么了?
function infiniteLoop(): never {
while (true) {
console.log("true");
}
}
infiniteLoop(); // Potential infinite loop: exceeded 10001 iterations.
该类型
never
只是帮助打字稿理解该函数永远不会返回任何内容或总是抛出错误。例如在这段代码中:return 's'
由于 never 类型,typescript 会给你一个无法访问的错误。