TS2322错误解决方案

这篇具有很好参考价值的文章主要介绍了TS2322错误解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

废话

之前写C#,所以使用强类型的语言比较习惯,用js觉得有些自由散漫了,所以学习学习ts,结果感觉ts也有好多坑,好多限制,但是又不想使用@ts-ingore。多少有点强迫症吧

从网上找了好久都没找到方法。以下方法不一定是主流或正确的做法,只是在webstorm中不会再提示错误了,可以正常编译成js代码和运行。

仅供参考

提示错误的代码

定义一个接口,用来表示自己的类型

export interface Options {
    key1: number;
    key2: boolean;
    key3?: string
}

定义两个Options类型的变量

let options1:Options = {
    key1: 0,
    key2: false
    key3: "option1"
}

let options2:Options = <Options>{
    key1: 3,
    key2: type
}

使用for…in对options1遍历给options2赋值

  • TS2322: Type ‘number | boolean’ is not assignable to type ‘never’.   Type ‘number’ is not assignable to type ‘never’.
let key: keyof Options;
for (key in options) {
    if(option1.hasOwnProperty(key)){
        option2[key]/*ts2322*/ = options[key];
    }
}

  • TS7053: Element implicitly has an ‘any’ type because expression of type ‘string’ can’t be used to index type ‘Options’.   No index signature with a parameter of type ‘string’ was found on type ‘Options’.
for (const key in options) {
    if(option1.hasOwnProperty(key)){
        Settings.options[key]/*ts7053*/ = options[key]/*ts7053*/;
    }
}

修改后的代码

将定义的接口继承Record即可,指定key及值的类型

export interface Options extends Record<string, any>
    key1: number;
    key2: boolean
}

说明及参考

TypeScript版本:4.7.4

编辑器webstorm2022.3

【1】TS 里几个常用的内置工具类型(Record、Partial 、 Required 、 Readonly、 Pick 、 Exclude 、 Extract 、 Omit)的使用_ts partial_织_网的博客-CSDN博客

【2】如何在Typescript中使用for…in ? - 掘金 (juejin.cn)文章来源地址https://www.toymoban.com/news/detail-594510.html

到了这里,关于TS2322错误解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 合并多个 .ts 文件为单个 .mp4 解决方案

    📌 概要: 现在的视频网站采用的是流媒体传输协议,即把一个完整的视频切分为多个小片段,这些片段就是以 .ts 为后缀的视频文件。分片下载需要一个索引文件记录所有分片的网络地址,而这个索引文件就是 .m3u8 。 前段时间我在用 .m3u8 下载器下载电影的时候出现了问题

    2024年02月12日
    浏览(58)
  • 【解决方案】使用WebStorm运行TypeScript文件(基于ts-node)

    本文章内 所有WS代表WebStorm; 所有TS代表TypeScript。 首先呢,我也算是TS的初学者。相信作为过来人都清楚,新手刚刚上手TS的时候,配置环境是多么痛苦的一件事情。并且,我就很好奇,为什么网上教程、参考文档、甚至专业书籍,铺天盖地都是使用的是VScode编写的。(难道

    2024年02月09日
    浏览(50)
  • ts报错“this“ 隐式具有类型 “any“,因为它没有类型注释。解决方案

    序         1、参考博文===》①严格模式 - 知乎,②ts的tsconfig.son中文说明③TypeScript Number | 菜鸟教程          2、解决( ts报错“this“ 隐式具有类型 “any“,因为它没有类型注释。 )           3、解决( 函数内this是undefined 的问题 )          4、解决( 其目标缺少构造

    2024年02月08日
    浏览(74)
  • 计讯物联环保数采仪TS910在扬尘预警监测解决方案的应用

    方案背景 随着我国经济高速发展和城市化进程的加速,城市建设工程规模不断扩大,工程施工给居住区、学校、医院等周边环境带来了巨大的影响,特别是扬尘污染带来的细颗粒物,严重危害到人体健康和大气环境质量。 因此,计讯物联以可持续发展为设计理念,践行国家

    2024年02月03日
    浏览(99)
  • JavaScript 异步编程解决方案-上篇

    1、JavaScript 异步编程 1、传统的方案 :JavaScript 中的异步操作函数往往通过回调函数来实现异步任务的结果处理 场景:fs 文件操作 数据库操作 AJAX 定时器 eg: 1、setTimeout 函数

    2024年02月01日
    浏览(42)
  • JavaScript 异步编程解决方案-中篇

    1.Promise 构造函数:new Promise(executor) Promise() 只能通过 new 运算符来构造。如果尝试在没有使用 new 的情况下调用它,会抛出 TypeError 异常。 1.executor 执行器函数:(resolve,reject)={} 2.resolve 函数:内部定义成功时候调用values={} 3.reject 函数:内部定义失败时候调用error={} 备注:e

    2024年01月23日
    浏览(46)
  • vscode中 vue3+ts 项目的提示失效,volar插件失效问题解决方案

    说起来很耻辱,从mac环境换到window环境,vscode的配置都是云端更新过来的,应该是一切正常才对,奇怪的是我的项目环境出现问题了,关于组件的ts和追踪都没有效果,再经过一上午的排查和试错后,终于被我解决,问题的原因是volar和ts环境之间的版本不匹配,下面来看下我

    2024年02月03日
    浏览(53)
  • SSL连接错误导致的编译错误——详细解决方案

    SSL连接错误导致的编译错误——详细解决方案 在处理大数据时,我们经常会遇到与SSL(Secure Sockets Layer)连接相关的问题。其中之一是\\\"SSL peer shut down incorrectly\\\"错误,这个错误提示表明SSL连接的对等方(peer)未正确关闭连接,导致编译错误。本文将介绍如何解决这个问题,并

    2024年02月03日
    浏览(40)
  • JavaScript 异步解决方案 Promise 全解析(转载)

    Promise 是一个 JS 的异步编程解决方案,解决了传统异步编程回调地狱的问题。 从语义上来说: Promise 是一个向外部传达异步编程操作消息的对象。 JS里一个promise可以有以下几种基本状态: nothing happened yet \\\"locked in\\\" to another promise fulfilled rejected 其中{1,2}为 pending ,{3,4}为 settl

    2024年02月08日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包