- Learn React with TypeScript 3
- Carl Rippon
- 256字
- 2021-06-10 19:16:32
Never
The never type represents something that would never occur and is typically used to specify unreachable areas of code. Again, this doesn't exist in JavaScript.
Time for an example:
- Type the following code into the TypeScript playground:
function foreverTask(taskName: string): never {
while (true) {
console.log(`Doing ${taskName} over and over again ...`);
}
}
The function invokes an infinite loop and never returns, and so we have given it a type annotation of never. This is different to void because void means it will return, but with no value.
In the preceding example, we used a JavaScript template literal to construct the string to log to the console. Template literals are enclosed by back-ticks ( ``) and can include a JavaScript expression in curly braces prefixed with a dollar sign ( ${expression}). Template literals are great when we need to merge static text with variables.
- Let's change the foreverTask function to break out of the loop:
function foreverTask(taskName: string): never {
while (true) {
console.log(`Doing ${taskName} over and over again ...`);
break;
}
}
The TypeScript compiler quite rightly complains:
- Let's now remove the break statement and the never type annotation. If we hover over the foreverTask function name with our mouse, we see that TypeScript has inferred the type to be void, which is not what we want in this example:
The never type is useful in places where the code never returns. However, we will probably need to explicitly define the never type annotation because the TypeScript compiler isn't smart enough yet to infer that.
推薦閱讀
- Visual C++串口通信開發入門與編程實踐
- Windows系統管理與服務配置
- Learning RxJava
- Java面向對象程序開發及實戰
- MATLAB實用教程
- MySQL數據庫管理與開發實踐教程 (清華電腦學堂)
- 軟件品質之完美管理:實戰經典
- HTML5 APP開發從入門到精通(微課精編版)
- Python High Performance Programming
- Java網絡編程核心技術詳解(視頻微課版)
- Test-Driven Development with Django
- Mastering Docker
- Getting Started with JUCE
- 網絡綜合布線與組網實戰指南
- Learning iOS Penetration Testing