首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计算数组属性的类型记录错误:“‘ComputedRef<any>’类型上不存在属性'map‘”

计算数组属性的类型记录错误:“‘ComputedRef<any>’类型上不存在属性'map‘”
EN

Stack Overflow用户
提问于 2022-09-14 14:30:21
回答 1查看 36关注 0票数 0

我有一个计算属性(数组),它是从另一个计算属性中提取的。

当试图在属性上使用map/filter/reduce/find时,它会导致linting错误:

代码语言:javascript
运行
复制
Property 'map' does not exist on type 'ComputedRef<any>

那么,如何以正确的方式声明计算的属性呢?我使用Vue 3(复合api)和类型记录以及Volar (用于vscode)。

代码语言:javascript
运行
复制
const product = reactive({});            //<-- empty until it is loaded

const getItem = computed(() => {
  return items.map( (item:any) => {      //<-- typescript error
    return item;                   //(simplified code, returns 1 item in reality)
})

const items = computed(() => {
  return product?.items;                //<-- items array        
});

我也试过

代码语言:javascript
运行
复制
const items = computed<any[]>(() => {

这会导致相同的错误(对getItem函数)。

这是:

代码语言:javascript
运行
复制
const items:any[] = computed<any[]>(() => {

这会导致Type 'ComputedRef<any>' is missing the following properties from type 'any[]': length, pop(..etc)的“项”出现错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-14 14:36:36

计算参考文献有一个value支柱,允许您访问ref的值。

所以你可以这样使用它:

代码语言:javascript
运行
复制
const product = reactive({});

const getItem = computed(() => {
  return items.value.map((item:any) => {
    return item;
  });
});

const items = computed(() => {
  return product?.items;     
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73718638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档