HarmonyOS 鸿蒙Next 如何声明一个为null的函数类型

发布于 1周前 作者 yibo5220 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 如何声明一个为null的函数类型

声明一个函数类型的变量,但是不能为null,
需要实现下面的功能,如果别人传给我一个backClick,就执行别人传给的,

如果别人没有传,就执行一个router.back()方法,但是这个backClick不能为null 和 undefined,该怎么做才能实现下面的判断

.onClick(()=>{
if(this.backClick != undefined){
this.backClick()
} else {
router.back()
}
}


更多关于HarmonyOS 鸿蒙Next 如何声明一个为null的函数类型的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

 可以试试如下方式实现

public backClick ?:(event?:ClickEvent) =>void | ClickEvent
  .onClick(()=>{
    if(this.backClick && this.backClick != undefined){
      this.backClick()
    } else {
      router.back()
    }
  }

更多关于HarmonyOS 鸿蒙Next 如何声明一个为null的函数类型的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


深色代码主题
复制
backClick?: () => void

在HarmonyOS 鸿蒙Next中,声明一个为null的函数类型并不直接对应于一个具体的语法结构,因为函数类型本身在鸿蒙的ArkUI(使用TypeScript或eTS)或原生C/C++代码中并不支持直接声明为null。然而,你可以通过声明一个可选的函数类型来间接实现类似效果,即在TypeScript或eTS中使用nullundefined来表示一个未赋值的函数。

在TypeScript/eTS中,你可以这样声明一个可能为null的函数类型:

type NullableFunctionType = (() => void) | null;

let myFunction: NullableFunctionType = null;

这里,NullableFunctionType是一个联合类型,表示一个无参数无返回值的函数类型() => void或者null。变量myFunction被声明为这个类型,并初始化为null

在原生C/C++中,由于函数指针不能直接赋值为null(实际上是nullptr),但你可以通过声明一个指向函数的指针并将其初始化为nullptr来达到类似效果:

typedef void (*NullableFunctionPointer)();

NullableFunctionPointer myFunction = nullptr;

这里,NullableFunctionPointer是一个指向无参数无返回值函数的指针类型,myFunction被声明为这个类型,并初始化为nullptr

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部