HarmonyOS 是否有办法定义一种类型,可以指向任意一个返回string的函数?

是否有办法定义一种类型,可以指向任意一个返回Promise的函数?也就是这种类型不对函数的参数列表做限制,但对返回值类型作限制。

我尝试以下写法但是编译报错:

类型定义:

export type AsyncFunction<T> = (...args: Object[]) => Promise<T>

类型使用:

const a: AsyncFunction<void> = async (a: string, b: number): Promise<void> => { 
}

报错信息:

Type '(a: string, b: number) => Promise<void>' is not assignable to type 'AsyncFunction<void>'.  
Types of parameters 'a' and 'args' are incompatible. Type 'Object' is not assignable to type 'string'. <ArkTSCheck>

请问当下是否有能够实现的方式?

HarmonyOS
2024-09-02 11:16:49
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

可以这么写,请参考

type AsyncFunction<T> = (...args: ESObject[]) => Promise<T> 
 
const a: AsyncFunction<void> = (a: string, b: number, c: boolean, d: Object, e: string[], f: number[]): Promise<void> => { 
  return new Promise(()=>{ 
 
  }) 
}

这个后续没有完全禁用掉的风险,ESObject就是变相的any ,不推荐使用,如果明确知道是什么数据类型还是写清楚的好,可以使用TS的联合类型 将多种类型组合成一个复杂类型。

分享
微博
QQ
微信
回复
2024-09-02 16:08:57
相关问题
HarmonyOS一种类似总线通知功能
353浏览 • 1回复 待解决
是否定义一个返回组件?
251浏览 • 1回复 待解决
如何定义一个未知类型对象
876浏览 • 2回复 待解决
使用Promise实现一种串行调用方式
1060浏览 • 1回复 待解决
使用自定义函数创建一个UI组
369浏览 • 1回复 待解决
HarmonyOS 如何返回一个颜色?
290浏览 • 1回复 待解决
是否可以申明一个静态map并使用?
185浏览 • 1回复 待解决