鸿蒙开发(18)arkTS类型

  1. 联合类型
 let a:string | number= 12  //联合类型
  1. 键值对类型
  let map:Record<string,number>={ 
  	'abc':1
  }
  1. 枚举
//枚举字段表示性别有哪些取值
enum 枚举名 {
    枚举字段1:1,
    枚举字段2:2,
    枚举字段3:3,
}
//以性别为例
enum Gender {
    male = "美女",
    female = "帅哥",
}
let gender = Gender.male
  1. 自定义类型
//定义导出
export default  class ItemData{
  img:Resource;
  label:string;
  describe?:string;

  constructor(img:Resource,label:string,describe?:string) {
    this.img = img
    this.label = label
    this.describe = describe
  }
}

//引进使用
import ItemData  from './ItemData'

getFirstGridData():Array<ItemData>{
  let firstGridData: ItemData[] = [
    new ItemData( $r('app.media.home_menu_01'),'我的最爱'),
    new ItemData( $r('app.media.home_menu_02'),'历史记录'),
    new ItemData( $r('app.media.home_menu_03'),'消息'),
    new ItemData( $r('app.media.home_menu_04'),'购物车'),
    new ItemData( $r('app.media.home_menu_05'),'我的目标'),
    new ItemData( $r('app.media.home_menu_06'),'圈子'),
    new ItemData( $r('app.media.home_menu_07'),'收藏'),
    new ItemData( $r('app.media.home_menu_08'),'回收站'),
  ]
  return firstGridData
}
  1. 泛型
class PramsType<T>{
  value:T
  constructor(value:T) {
    this.value = value
  }
}

class TaskModel {
  id:string = ""
  taskName:string = ""
  taskTime:string = ""
  taskMsg:string = ""
  taskBeginDate:string = ""
  taskEndDate:string = ""
  taskType:number = 1 //1,个人任务 2,工作任务
  taskTitle:number = 1 //任务标签学习,生活,娱乐
  taskStatus:string="" //任务状态:done完成 undone未完成 doing正在进行 futrue未来任务

  constructor(id:string,taskName:string,taskTime:string,taskMsg:string,taskBeginDate:string,taskEndDate:string, taskType:number,taskTitle:number) {
    this.id = id
    this.taskName = taskName
    this.taskTime = taskTime
    this.taskBeginDate = taskBeginDate
    this.taskEndDate = taskEndDate
    this.taskType = taskType
    this.taskTitle = taskTitle
    this.taskMsg = taskMsg
    //状态不用传递进来
    // 默认undone
    this.undateTaskStatus()
  }
  //用于根据当前时间,计算任务状态
  undateTaskStatus() {
    const currentDate = formatDate(new Date().getTime(),"yyyy-mm-dd")
    if(this.taskTime>currentDate){//未来任务
      this.taskStatus = TaskStatusType.FUTRUE
    }else if (this.taskTime===currentDate){ //正在进行
      this.taskStatus = TaskStatusType.DOING
    }else if (this.taskTime<=currentDate){//未完成
      this.taskStatus = TaskStatusType.UNDONE
    }
  }

}

@Entry
@Component
struct Page05_AddTask {
  //页面加载回调
  aboutToAppear(): void {
    const params = router.getParams()
    //使用 告诉 编辑器,明确知道params对象数据类型为PramsType
    const taskDetail = (params as PramsType<TaskModel>).value
    console.log(JSON.stringify(params))
  }
  build() {
    Column(){
      //标题模块
      Text("任务详情")
        .fontSize(26)
        .fontWeight(FontWeight.Bold)
        .fontColor($r("app.color.text_color"))
        .margin({bottom:20})

    }
    .width("100%")
    .height("100%")
    .padding(10)
    .backgroundColor($r("app.color.page_bg_color"))
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值