import type { Ref } from 'vue'import {ref, reactive} from 'vue'interface IObj { count: Ref<number> | null; arr: { // 如果是这种自定义属性的对象类型则不会在 reactive 返回值的类型中进行解包 [key:string]: Ref<number> } | null; o?: { oo: Ref<number> }}const obj = reactive<IObj>({ count: null, arr: null})/*reactive 返回值的类型 const obj: { count: number | null; arr: { [key: string]: Ref<number>; } | null; o?: { oo: number; } | undefined;}*/// 这里ts报错: 不能将类型“Ref<number>”分配给类型“number”obj.count = ref(1)obj.arr = { aa: ref(0), bb: ref(1)}// 这里ts报错: 不能将类型“Ref<number>”分配给类型“number”let num:number = obj.arr.aaconsole.log(num); // 0
目前没什么好的方式, 你可以追踪下这两个issue:
https://github.com/vuejs/core/issues/3478
https://github.com/microsoft/TypeScript/issues/43826
不知道这样能不能满足你的需求:
import type { Ref } from 'vue'import {ref, reactive} from 'vue'interface IObj { count: Ref<number> | null; arr: { [key:string]: Ref<number> } | null; o?: { oo: Ref<number> }}const obj:IObj = reactive({ count: null, arr: null})obj.count = ref(1)obj.arr = { aa: ref(0), bb: ref(1)}let num:number = (obj.arr.aa as Ref<number>).valueconsole.log(num);
const obj: IObj 这样试试
不推荐使用 reactive() 的泛型参数,因为处理了深层次 ref 解包的返回值与泛型参数的类型不同。
如图,这个status是一个状态字段,我这样定义的结构,他可以为空或者一些数字,在我赋值给这个字段ts会给警告,我知道可以在reactive<>里声明,但这样的话我就需要给每个字段都声明类型,觉得很繁琐,请问你们项目中是怎么处理的
本文向大家介绍sqlserver 因为选定的用户拥有对象,所以无法除去该用户的解决方法,包括了sqlserver 因为选定的用户拥有对象,所以无法除去该用户的解决方法的使用技巧和注意事项,需要的朋友参考一下 现象: 把之前备份的数据库还原到现在的SQL数据库中,现在要把数据库中的用户删除掉,结果却提示: 因为选定的用户拥有对象,所以无法除去该用户 解决办法: 1.打开企业管理器,展开服务器,右键点
我从accuweather获得了以下带有json的代码 我尝试通过Jackson将此对象解析为POJO 我有json中指定的所有模型,如、数组、,由组成(在json中命名为最小值和最大值)等,它们都有私有字段和公共构造函数、getter和setter。但是我没有一些字段,因为我想省略它们(Day、night、EpochDate、Source)。 当我运行程序时,我得到了错误 com.fasterx
问题内容: 好的,这是一个棘手的问题。我有一套清单。我想按顺序对集合中的对象进行排序。 想象每个场景都压抑着学校的一堂课。每个集合包含人物对象。人员对象具有名称的字符串值。在遍历并写下来之前,我想按名称排列集合中的人物。 是否有任何使用或类似的方法可以实现此目的? 我确实知道班上2个以上的孩子可能使用相同的名字,但请忽略此 问题答案: A 没有 排序的 概念,因为它是一个集合。 您可以使用按类实现
问题内容: 嗨,我有一个使用自定义格式字符串设置的简单日期格式:MMddyy 我给它解析以下值:4 1 01 我认为它不应该因为空格而解析,但是“简单日期格式”会返回日期 0001AD年4月4日 有什么想法吗? 问题答案: 这是预期的行为-您告诉DateFormat对象期望日期的6个字符的String表示形式,这就是您传递的内容。对空格进行了解析。但是,如果您使用“ 4x1x01”,则会出现错误。
本文向大家介绍全面了解JavaScript对象进阶,包括了全面了解JavaScript对象进阶的使用技巧和注意事项,需要的朋友参考一下 要了解JavaScript对象,我们可以从对象创建、属性操作、对象方法这几个方面入手。概括起来,包括以下几模块: 1.创建对象 1.1 对象直接量 对象直接量是创建对象最简单的方式,由若干名/值对组成映射表: 属性名也没有什么限制,可以是js的关键字或者任意字