15、ts之void,void(0),void 0

本文探讨了 TypeScript 中的 `void` 类型及其在 JavaScript 中的实际运用,强调 `void 0` 相较于 `undefined` 的优势。内容包括 `void` 类型的变量赋值、`void 0` 与 `undefined` 的等价性、避免 `undefined` 全局属性被覆盖的风险,以及 `void` 运算符的详细解析。最后总结了使用 `void 0` 的三个主要原因:安全性、兼容性和代码效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

void在ts中的运用

js中没有空值的概念,在ts中用void表达没有任何返回的值的函数。

function alertName(): void {
   
   
	alert('imkaifan')
}

声明一个 void类型的变量没有什么用,因为只能将其赋值为undefined 和 null(只在 --strictNullChecks 未指定时)

 
### TypeScript 箭头函数 `() => void` 语法及用途 #### 定义与基本结构 箭头函数是在 ES6 (ECMAScript 2015) 引入的一种新形式的函数定义方式[^1]。这种函数不仅拥有更加简洁的语法,还具有继承外部作用域 this 值的特点。 对于形如 `() => void` 的签名来说: - 圆括号内的部分表示参数列表;当没有任何输入参数时为空。 - 双箭头右侧紧跟的是返回类型声明,在此情况下为 `void`,意味着该函数不会返回任何有意义的数据给调用者。 ```typescript const doSomething: () => void = (): void => { console.log('执行某些操作'); }; doSomething(); ``` 上述代码展示了如何创建一个不接收任何参数也不返回值的简单箭头函数,并通过指定其类型来增强可读性和维护性。 #### 使用场景举例 此类无参且无返值的回调非常适合用于事件处理程序或其他仅需触发特定行为而无需关心结果的情形下。例如监听按钮点击事件或定时器到期后的动作等。 ```html <button id="myButton">点击这里</button> <script type="text/javascript"> document.getElementById('myButton').addEventListener('click', (()=>{alert('已点击');}) as EventListener); </script> ``` 在这个例子中,匿名箭头函数被用来作为响应用户交互的操作逻辑实现,它既不需要接受额外的信息也无意传递什么出去,因此采用 `()=>void` 是非常合适的。 #### 结合泛型的应用案例 有时希望编写通用性强的方法,这时就可以利用带有 `void` 返回类型的箭头函数配合泛型一起工作,从而达到更高的灵活性和重用率。 ```typescript function createLogger<T>(): (message: T) => void { return (msg: T): void => { console.log(`日志记录:${JSON.stringify(msg)}`); }; } // 创建针对不同数据类型的logger实例 const numberLogger = createLogger<number>(); numberLogger(42); const stringLogger = createLogger<string>(); stringLogger("Hello, world!"); ``` 以上示例说明了即使最终目标是构建只负责打印消息到控制台的日志工具,也可以借助 `()=>void` 来封装具体的行为模式并支持多种可能的消息格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南朝听月

你的打赏是我持续贡献的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值