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.pngimage.pngimage.png

目录
相关文章
|
1月前
|
JavaScript
JS中Null和Undefined的区别及用法
JS中Null和Undefined的区别及用法
13 1
|
2月前
|
JavaScript 前端开发 算法
undefined与null的区别
在JavaScript中,undefined和null都表示变量未被赋值或值缺失,但它们在使用场景上有一些区别。 - **`语义不同`**:undefined表示一个变量未被赋值或者声明后未进行初始化。而null表示一个变量被明确地设置为无值或者表示空值的概念。 - **`类型不同`**:undefined是一种基本数据类型,而null是一个引用类型。 - **`条件判断`**:在条件判断中,使用if (variable === undefined)或者if (variable === null)可以进行区分。
|
6月前
|
JavaScript 前端开发
JavaScript中undefined和not defined的区别
JavaScript中undefined和not defined的区别
|
11天前
|
前端开发 JavaScript
【Web 前端】undefined 和 null 区别?
【4月更文挑战第22天】【Web 前端】undefined 和 null 区别?
【Web 前端】undefined 和 null 区别?
|
23天前
|
JavaScript 前端开发 Python
js中null和undefined的区别是什么
js中null和undefined的区别是什么
18 3
|
3月前
|
JavaScript 前端开发 开发者
JavaScript(JS)和TypeScript(TS)的区别
JavaScript(JS)和TypeScript(TS)的区别
29 0
|
4月前
|
JavaScript 编译器
TypeScript 中 never 和 void 的区别
TypeScript 中 never 和 void 的区别
42 0
|
4月前
|
JavaScript
Typescript中 interface 和 type 的区别是什么?
在 TypeScript 中,interface 和 type 都用于定义类型,但它们有一些区别。
39 0
|
4月前
|
JavaScript 安全
TypeScript中any unkown never的区别
TypeScript中any unkown never的区别
|
6月前
|
JavaScript 前端开发
JavaScript中undefined和not defined的区别
JavaScript中undefined和not defined的区别
52 0