Discuz! BBS

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 157|回复: 0

箭头函数的输入参数

[复制链接]

480

主题

660

帖子

3881

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3881
发表于 2026-2-15 08:10:55 | 显示全部楼层 |阅读模式
在 .catch((err: BusinessError) => { ... }) 这段代码中,err: BusinessError 是 箭头函数的输入参数,用于声明回调函数接收的错误对象类型。以下是详细解析:

1. 参数作用解析
err:是 .catch() 方法回调函数的形参,表示异步操作(如 Promise)被拒绝(rejected)时抛出的错误对象。
BusinessError:通过 TypeScript 类型注解声明 err 的类型,确保错误对象符合 BusinessError 的结构(即包含 code 和 message 等属性)。

2. 语法特性说明

箭头函数参数类型注解
在 TypeScript/ArkTS 中,函数参数的类型声明通过 参数名: 类型 的语法实现。此处通过 (err: BusinessError) 明确告知编译器:err 参数必须是 BusinessError 类型。

与返回值的区别
箭头函数的返回值由函数体({} 内的逻辑)决定,此例中未显式返回任何值(即默认返回 undefined)。若需返回值,需通过 return 语句实现,例如:
  1. .catch((err: BusinessError): string => { return err.message; }); // 返回值类型为 string
复制代码


3. 实际应用场景
通过搜索结果中的代码示例(如窗口操作、路由跳转等),可以观察到以下用法:
  1. // 示例1:窗口操作中的错误处理
  2. windowStage.getMainWindow((err: BusinessError, data) => {
  3.   if (err.code) {
  4.     console.error(`错误码:${err.code}, 错误信息:${err.message}`);
  5.   }
  6. });

  7. // 示例2:路由跳转错误处理
  8. try {
  9.   router.back();
  10. } catch (err) {
  11.   let code = (err as BusinessError).code; // 强制类型断言
  12. }
复制代码


总结
·err 是 输入参数,接收异步操作抛出的错误对象。
·BusinessError 是类型注解,确保参数类型安全,避免直接使用 any 类型。
·这种设计符合 HarmonyOS 开发规范,有利于统一错误处理逻辑并提升代码可维护性。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2026-3-22 05:57 , Processed in 0.011261 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表