TS不能将类型“any[]”分配给类型“never[]”

ts,不能,类型,any,分配,never · 浏览次数 : 1875

小编点评

**方式一 (TS断言尖括号语法)** ```typescript data: {cateList: <any>[] }, ``` **方式二 (TS断言 as 语法)** ```typescript data: {cateList: [] as any }, ``` **方式三 (TS接口 interface)** ```typescript interface ICateList { id: string name: string level:number } ``` **完整代码** ```typescript async function getCateList() { const res = await fetchCateList() as any; if (res.code == 200) { this.cateList = res.data as ICateList[]; } } ```

正文

一、问题

在处理接口返回的数据,赋值给store中的数组时,报类型错误

data:{
   cateList: []
}

const getCateList = async () => {
const res =  await fetchCateList() as any
if (res.code == 200) {
    this.cateList = res.data
}

二、原因

res已经定义了any类型,但是cateList的类型还没有定义,默认为never

三、解决

1、方式一 (TS断言 尖括号语法)

data: {
    cateList: <any>[]
  },

2、方式二 (TS断言 as语法)

data: {
    cateList: [] as any
  },

3、方式三 (TS接口 interface)

//接口返回的数据结构如下
res.data = [
{id:'1',name:'xxx',level:1},
{id:'2',name:'xxx',level:2},
{id:'3',name:'xxx',level:3}
]

//根据返回的数据结构定义对应的类型
interface ICateList {
  id: string
  name: string
  level:number
}

data: {
     cateList: [] as ICateList[],
  },

与TS不能将类型“any[]”分配给类型“never[]”相似的内容:

TS不能将类型“any[]”分配给类型“never[]”

一、问题 在处理接口返回的数据,赋值给store中的数组时,报类型错误 data:{ cateList: [] } const getCateList = async () => { const res = await fetchCateList() as any if (res.code == 2

有JSDoc还需要TypeScript吗

这听起来是不是很耳熟:你想写一个小型脚本,不管是为页面、命令行工具,还是其他什么类型。你从JavaScript开始,直到你想起写代码时没有类型是多么痛苦。所以你把文件从`.js`重命名为`.ts`。然后意识到你已经打开了一个麻烦的玩意儿。 如果你在为一个网站或一个库写代码,你就需要引入编译的步骤。如

[转帖]Nginx 反向代理解决跨域问题

https://juejin.cn/post/6995374680114741279 编写代码两分钟,解决跨域两小时,我吐了。 如果对跨域还不了解的朋友,可以看这篇:【基础】HTTP、TCP/IP 协议的原理及应用 最近一段时间,在搞一个 SDK 的项目,使用的 TS + rollup。rollup

5分钟入门 next13

上半年vercel 推出了nextjs13 这个大版本,刚好最近有个c端的项目,所以就用了这个框架来写,技术体系基本也是文档提到的 tailwindcss + ts + swr + ssr ,总的来开发体验还可以,不管是打包速度、文档、错误信息提示目前都还满意,只不过目前nextjs13 中文资料有

FFmpeg开发笔记(三十七)分析SRS对HLS协议里TS包的插帧操作

​《FFmpeg开发实战:从零基础到短视频上线》一书的“2.1.2 音视频文件的封装格式”介绍了视频流的PS格式和TS格式。由于TS包的长度固定,从TS流的任一片段开始都能独立解码,因此可以把TS当成音视频文件的封装格式。 鉴于TS包的独立解码特性,HLS协议引入了TS格式作为传输单元。HLS协议的

【算法】在vue3的ts代码中分组group聚合源数据列表

有一个IList()对象列表, 示例数据为[{id:'1',fieldName:'field1',value:'1'},{id:'1',fieldName:'field2',value:'2'},{id:'2',fieldName:'field1',value:'1'},{id:'2',f

对于Vue3和Ts的心得和思考

Vue3已经正式发布了一段时间了,各种生态已经成熟。最近使用taro+vue3重构冷链的小程序,经过了一段时间的开发和使用,有了一些自己的思考。

「AntV」Vue3与TS框架下使用L7

本文基于Vite、Vue3和TypeScript搭建L7开发环境并示例

OpenTiny 跨端、跨框架组件库升级TypeScript,10万行代码重获新生

摘要:一份精心准备的《JS项目改造TS指南》文档供大家参考,顺便介绍TS 基础知识和 TS 在 Vue 中的实践。 本文分享自华为云社区《历史性的时刻!OpenTiny 跨端、跨框架组件库正式升级 TypeScript,10 万行代码重获新生!》,作者:Kagol。 根据 The Software

[转帖]oracle数据库中RMAN备份格式化format解释

格式化解释: 使用格式串 更改格式命令: RMAN> configure channel device type disk format ' E:\app\Administrator\db_bak\rmanbak\backup_%d_%T_%s_%p '; 新的 RMAN 配置参数: CONFIGU