TypeScript高级类型 在鸿蒙中的使用 Partial、Required、Readonly、Pick、Record

我的工程代码在这里,持续更新中
欢迎交流,谢谢
https://github.com/MartinLi89/WanHarmony

Partial <Type>

新定义 一个类型,将所有属性变为可选的类.

class TextTS {
  a: string = "1"
  b: string = "2"
  c: string = "3"
}

//1 Partial <Type>新定义 一个类型,将所有属性变为可选的类
type PartialTextTs = Partial<TextTS>
let test2: TextTS = {
  //报错 ,说明属性必填
  a:  "1",
  b:  "2",
  c:  "3"
}
let test1: PartialTextTs = {
  //正常,说明属性可选
}

Required <Type>

新定义 一个类型,将所有属性变为必选的类

//1.1 Required
type Person =  Required<TextTS>
let test3: Person = {
  a : "1",
  b : "2",
  c : "3"

}

Readonly<Type>

新定义 一个类型, 将所有属性变为只读的类

//2Readonly <Type> 新定义 一个类型, 将所有属性变为只读的类
type ReadonlyTextTs = Readonly<TextTS>
let testReadonly: ReadonlyTextTs = {
  a: "1",
  b: "2",
  c: "3"
}
let test12: TextTS = {
  a: "1",
  b: "2",
  c: "3"
}
testReadonly.a = "f" //报错,说明只读
test12.a = "f"

Pick<Type,Keys>

新定义 一个类型 从Type类型中,选择需要的keys,构成新的类型
这是不支持么,居然报错
Some of utility types are not supported (arkts-no-utility-types) <ArkTSCheck>
在这里插入图片描述
如此写,就不会报错了
在这里插入图片描述

Record<Keys,Type>

新定义 一个类型属性键为Keys,属性类型为Type,构成新的类型 居然报错
Object literal must correspond to some explicitly declared class or interface (arkts-no-untyped-obj-literals) <ArkTSCheck>
在这里插入图片描述
如此写是正常的,所以在此处需要注意ke的类型和使用方式哦~
在这里插入图片描述

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 类型注释只能在 TypeScript 文件使用的原因是因为 TypeScript 是一种静态类型检查的编程语言,可以通过类型注释来提供代码的类型信息,从而在编译期间进行类型检查,减少运行时的错误。而 Vue 是一个基于 JavaScript 的框架,JavaScript 是一种动态类型的编程语言,没有编译阶段,所以无法进行静态类型检查。 然而,由于 Vue 在项目使用了许多特定的语法和生命周期,TypeScript 提供了一种使用类型注释来增强 Vue 代码的可读性和可维护性的方式。通过在 Vue 组件文件使用 TypeScript 的扩展语法,我们可以将类型注释应用于 Vue 组件的 prop、data、computed 等属性上。这样在开发过程,编辑器可以根据类型注释提供代码补全、错误检查等功能,从而提高开发效率和代码质量。 需要注意的是,为了使用 Vue 类型注释,我们需要在 TypeScript 文件引入 Vue 的类型声明文件,以使 TypeScript 理解 Vue 的特定语法和类型信息。同时,我们还需要在项目配置添加相应的 TypeScript 相关配置,以确保 TypeScript 在编译过程正确解析和处理 Vue 组件类型注释。 总之,Vue 类型注释只能在 TypeScript 文件使用,是因为 TypeScript 提供了一种增强 Vue 代码的方式,通过类型注释来提供静态类型检查和代码补全等功能,从而提高项目的代码质量和开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值