TypeScript类型检查错误 error TS2339

2024-08-29 18:44

本文主要是介绍TypeScript类型检查错误 error TS2339,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

错误产生

上一篇博客写了一个调用摄像头的 demo ,用了 vue3 + vite ,使用了 TypeScript ,代码大致如下:

<script setup lang="ts">
import { onMounted, ref } from 'vue';
import WelcomeItem from './WelcomeItem.vue'
import ToolingIcon from './icons/IconTooling.vue'
import axios from 'axios';
import { ACCESS_TOKEN } from '../config/constants';const devices = ref([]);const fetchDevices = async () => {try {const response = await axios.post(`https://open.ys7.com/api/lapp/device/list?accessToken=${ACCESS_TOKEN}&pageStart=0&pageSize=40`);if (response.status === 200) {devices.value = response.data.data;console.log(response.data)} else {console.error('Failed to fetch devices:', response.statusText);}} catch (error) {console.error('Error fetching devices:', error);}
};onMounted(() => {fetchDevices();
});</script>
<template><WelcomeItem v-for="(device) in devices" :key="device.id"><template #icon><ToolingIcon /></template><template #heading>{{ device.deviceName }}</template>  <a :href="'/player/?id=' + device.deviceSerial + '&template=pcRec'" target="_blank">回放</a><a :href="'/player/?id=' + device.deviceSerial + '&template=pcLive'" target="_blank">直播</a></WelcomeItem>
</template>

在开发环境运行是没有问题的,但如果使用,npm run build (配置为类型检查,即 run-p type-check \"build-only {@})时,出现如下错误:

transforming (397) node_modules\axios\lib\platform\browser\classes\URLSearchParams.jssrc/components/ThePlayList.vue:31:59 - error TS2339: Property 'id' does not exist on type 'never'.31     <WelcomeItem v-for="(device) in devices" :key="device.id">~~src/components/ThePlayList.vue:35:34 - error TS2339: Property 'deviceName' does not exist on type 'never'.35     <template #heading>{{ device.deviceName }}</template>~~~~~~~~~~src/components/ThePlayList.vue:36:39 - error TS2339: Property 'deviceSerial' does not exist on type 'never'.36     <a :href="'/player/?id=' + device.deviceSerial + '&template=pcRec'" target="_blank">回放</a>~~~~~~~~~~~~src/components/ThePlayList.vue:37:39 - error TS2339: Property 'deviceSerial' does not exist on type 'never'.37     <a :href="'/player/?id=' + device.deviceSerial + '&template=pcLive'" target="_blank">直播</a>~~~~~~~~~~~~Found 4 errors.ERROR: "type-check" exited with 2.

解决办法

1. 不做类型检查

这是简单粗暴的办法,也是鸵鸟策略,不检查直接生成不就行了。

npm run build-only

也就是 vite build,能正确生成。
鸵鸟策略

2. 按照出错的问题修改

忽略掉总是不好,那么,可以修改出错的地方,这里主要是 AJAX 返回的 devices 的类型问题,因为是 JSON 返回,可以考虑为 any 类型,于是进行了局部的修改:

const devices = ref<any>([]);

再次执行含 type-check 的生成命令

npm run build

错误提示消失。

这篇关于TypeScript类型检查错误 error TS2339的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1118654

相关文章

Java实现检查多个时间段是否有重合

《Java实现检查多个时间段是否有重合》这篇文章主要为大家详细介绍了如何使用Java实现检查多个时间段是否有重合,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录流程概述步骤详解China编程步骤1:定义时间段类步骤2:添加时间段步骤3:检查时间段是否有重合步骤4:输出结果示例代码结语作

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

在MySQL执行UPDATE语句时遇到的错误1175的解决方案

《在MySQL执行UPDATE语句时遇到的错误1175的解决方案》MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引... mysql 中遇到的 Error Code: 1175 是由于启用了 安全更新模式(Safe Upd

Go语言中三种容器类型的数据结构详解

《Go语言中三种容器类型的数据结构详解》在Go语言中,有三种主要的容器类型用于存储和操作集合数据:本文主要介绍三者的使用与区别,感兴趣的小伙伴可以跟随小编一起学习一下... 目录基本概念1. 数组(Array)2. 切片(Slice)3. 映射(Map)对比总结注意事项基本概念在 Go 语言中,有三种主要

SpringBoot中的404错误:原因、影响及解决策略

《SpringBoot中的404错误:原因、影响及解决策略》本文详细介绍了SpringBoot中404错误的出现原因、影响以及处理策略,404错误常见于URL路径错误、控制器配置问题、静态资源配置错误... 目录Spring Boot中的404错误:原因、影响及处理策略404错误的出现原因1. URL路径错

Redis的Zset类型及相关命令详细讲解

《Redis的Zset类型及相关命令详细讲解》:本文主要介绍Redis的Zset类型及相关命令的相关资料,有序集合Zset是一种Redis数据结构,它类似于集合Set,但每个元素都有一个关联的分数... 目录Zset简介ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZ

IDEA如何将String类型转json格式

《IDEA如何将String类型转json格式》在Java中,字符串字面量中的转义字符会被自动转换,但通过网络获取的字符串可能不会自动转换,为了解决IDEA无法识别JSON字符串的问题,可以在本地对字... 目录问题描述问题原因解决方案总结问题描述最近做项目需要使用Ai生成json,可生成String类型

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去

shell脚本快速检查192.168.1网段ip是否在用的方法

《shell脚本快速检查192.168.1网段ip是否在用的方法》该Shell脚本通过并发ping命令检查192.168.1网段中哪些IP地址正在使用,脚本定义了网络段、超时时间和并行扫描数量,并使用... 目录脚本:检查 192.168.1 网段 IP 是否在用脚本说明使用方法示例输出优化建议总结检查 1