TypeScript void 和 undefined 的区别

简介: TypeScript void 和 undefined 的区别

在 JavaScript 中,不返回任何值的函数将隐式返回 undefined 值。 但是,在 TypeScript 中 void 和 undefined 不是一回事。


函数的 void 返回类型可能会产生一些不寻常但预期的行为。


返回类型为 void 的上下文类型不会强制函数不返回某些内容。 另一种说法是具有 void 返回类型(类型 vf = () => void)的上下文函数类型,在实现时,可以返回任何其他值,但会被忽略。


type voidFunc = () => void;
const f1: voidFunc = () => {
  return true;
};
const f2: voidFunc = () => true;
const f3: voidFunc = function () {
  return true;
};

这些函数的实现体里确实返回了数据,但是被忽略了。


但是我测试发现,这些 voidFunc 函数体内返回的数据,仍然可以被消费者接收到:


image.png




和这篇帮助文档里介绍的不一致:

image.png

相关文章
|
12月前
|
JavaScript
TypeScript-any和void类型
TypeScript-any和void类型
45 0
|
前端开发 JavaScript
在TypeScript中定义Promise返回值
在TypeScript中定义Promise返回值
|
1月前
|
存储 JavaScript 前端开发
|
5月前
|
JavaScript 编译器
TypeScript 中 never 和 void 的区别
TypeScript 中 never 和 void 的区别
100 0
|
5月前
|
JavaScript 前端开发
js基础语法:包括变量声明、数据类型(Number, String, Boolean, Null, Undefined, Symbol, Object)、运算符、流程控制语句(if...else, switch, for, while, do...while)等。具体案例使用演示
js基础语法:包括变量声明、数据类型(Number, String, Boolean, Null, Undefined, Symbol, Object)、运算符、流程控制语句(if...else, switch, for, while, do...while)等。具体案例使用演示
68 1
|
5月前
|
JavaScript
TypeScript中typeof的简单介绍
TypeScript中typeof的简单介绍
|
5月前
|
JavaScript 前端开发
JavaScript基础语法:包括变量声明、数据类型(Number, String, Boolean, Null, Undefined, Symbol, Object)、运算符、流程控制语句(if...else, switch, for, while, do...while)等。
JavaScript基础语法:包括变量声明、数据类型(Number, String, Boolean, Null, Undefined, Symbol, Object)、运算符、流程控制语句(if...else, switch, for, while, do...while)等。
60 0
|
12月前
|
JavaScript
TypeScript-null和undefined
TypeScript-null和undefined
57 0
|
JavaScript 前端开发 编译器
TypeScript--函数(function)
TypeScript--函数(function)
|
JavaScript
TypeScript void 无返回值
TypeScript void 无返回值
85 0