如何解决Vuejs composition API's Ref() type Error?
How to solve Vuejs composition API's Ref() type Error?
我正在使用 vue 组合 API 并对对象数组使用 ref,每个对象都有一个值 属性,打字稿似乎将 ref 的值与 属性 每个数组中的值:
正如你在上图中看到的,typescript 告诉我们 arr 的类型是一个包含名称和值的对象数组,但是当我使用 ref 时,它检测到错误的类型。即使我像下面那样用作转换问题也无法解决:
const arr2 = ref(arr as { name: string; value: number }[]);
但是当我将值 属性 更改为 value2 或其他值时,它将起作用:
更新:
这是我今天遇到的另一个问题:
我想知道我该如何解决这个类型错误?
很遗憾你用图片来显示你的代码,因为我必须重新输入一遍。
是的,使用 'value' 作为对象中的键似乎很明显会混淆 Typescript。
您可以通过声明一个 接口 来绕过它,然后您还可以使用它来声明 arr2
interface thing {
name: string,
value: number
};
const arr: thing[] = [
{name: "x1", value: 1},
{name: "x2", value: 2}
];
const arr2: Ref<thing[]> = ref(arr);
arr2.value.forEach(item => console.log(item.name + ':' + item.value));
然而,绕过它的最好方法显然是不要使用 'value' 作为对象中的键。
我正在使用 vue 组合 API 并对对象数组使用 ref,每个对象都有一个值 属性,打字稿似乎将 ref 的值与 属性 每个数组中的值:
正如你在上图中看到的,typescript 告诉我们 arr 的类型是一个包含名称和值的对象数组,但是当我使用 ref 时,它检测到错误的类型。即使我像下面那样用作转换问题也无法解决:
const arr2 = ref(arr as { name: string; value: number }[]);
但是当我将值 属性 更改为 value2 或其他值时,它将起作用:
更新:
这是我今天遇到的另一个问题:
我想知道我该如何解决这个类型错误?
很遗憾你用图片来显示你的代码,因为我必须重新输入一遍。
是的,使用 'value' 作为对象中的键似乎很明显会混淆 Typescript。 您可以通过声明一个 接口 来绕过它,然后您还可以使用它来声明 arr2
interface thing {
name: string,
value: number
};
const arr: thing[] = [
{name: "x1", value: 1},
{name: "x2", value: 2}
];
const arr2: Ref<thing[]> = ref(arr);
arr2.value.forEach(item => console.log(item.name + ':' + item.value));
然而,绕过它的最好方法显然是不要使用 'value' 作为对象中的键。