首页 > 其他分享 >解决ts中的类型问题:利用any类型污染来实现

解决ts中的类型问题:利用any类型污染来实现

时间:2023-12-22 15:24:29浏览次数:20  
标签:ts any user passport 类型 id

nestjs用request.user可以获取到passport中自己编写的策略返回的值,但是使用这个user中的数据时,就显示返回的user值的类型中没有其他数据。使用ctrl+鼠标点一下这个user,跳转到passport依赖的一个文件中,原来这个user是定义了一个接口,里面是空的。如果使用这个接口来做类型,好处是可以接受各种数据,坏处是后续访问不到里面的数据。但是我的passport策略返回的是一个user对象,里面包含一个id值,我需要使用request.user中的id值。有两种解决方法:一种是直接修改依赖中接口定义的类型,加上一个id的属性和类型;另一种就是利用any污染这个接口的类型。将request.user赋值给一个any对象,然后再使用对象中的id。

interface User {

}
const user:User = {
    name:'along',
    age:18
}
const data:any = user
console.log(data.age)

上面就是使用any类型污染来解决ts中类型问题的代码事例。这样我们就不用修改依赖包里面的代码了,毕竟直接修改依赖不是太好。

标签:ts,any,user,passport,类型,id
From: https://www.cnblogs.com/panglinglong/p/17921661.html

相关文章

  • P9361 [ICPC2022 Xi'an R] Contests
    更好的阅读体验P9361[ICPC2022Xi'anR]Contests首先观察一下性质,每个\(l\)在每场比赛里一定是对应着某个前缀。发现题目要求的是最小的满足要求的\(l\),最暴力的大概是维护五个指针,每次答案\(+1\),然后尝试跳一步,什么时候某个前缀包含了\(x\)当前的计数器就是答案。考......
  • DOTS Unity.Physics物理引擎碰撞事件处理
    最近DOTS发布了正式的版本,同时基于DOTS的理念实现了一套高性能的物理引擎,今天我们给大家分享和介绍一下这个物理引擎的碰撞事件处理以及核心相关概念。Unity.Physics物理引擎的主要流程与Pipeline Unity.Physics物理引擎做仿真迭代计算的时候主要通过以下步骤来执行:   st......
  • 专业人士必知,渗透测试工具的类型!
    伴随着互联网技术的高速发展,网络攻击事件频繁,渗透测试工作也变得尤为重要。而回想过去,很多工作都需要手动操作来完成,浪费时间、浪费人力,然而随着技术的不断发展,渗透测试工作也变得智能化,衍生了很多工具,相对于以往不少重复性的工作均可以借助工具来完成。本文主要为大家介绍一下......
  • Swift 笔记-1 基本类型,集合类型,控制流与基本函数
    目录基本类型变量与常量字符串单行多行整型浮点布尔值集合类型数组字典Dictionaries集合Sets枚举Enums控制流条件判断循环代码块抽象结构函数声明函数返回类型声明返回多个值自定义参数标签函数参数默认值函数与错误最近对iOS开发有兴趣,学习SwiftUI,主要跟的是hackingwiths......
  • 在网页中调用MSTSC打开远程桌面
    1.修改注册表添加自定义URL协议MSTSC[HKEY_CLASSES_ROOT\MSTSC]@="URL:MSTSCProtocol""URLProtocol"=""[HKEY_CLASSES_ROOT\MSTSC\DefaultIcon][HKEY_CLASSES_ROOT\MSTSC\shell][HKEY_CLASSES_ROOT\MSTSC\shell\open][HKEY_CLASSE......
  • 解决异常报错:“CrystalDecisions.CrystalReports.Engine.ReportDocument”的类型初始
    在Winform程序里调用水晶报表打印在这句:ReportDocumentRepostDoc=newReportDocument();一直报错提示:”CrystalDecisions.CrystalReports.Engine.ReportDocument”的类型初始值设定项引发异常 在网上查到几种解决方式都没解决,依然报错:1.确认程序引用地址是否缺少必要的dl......
  • element-plus的type类型为daterange的时候限制时间选择
    对于ElementPlus的日期时间范围选择组件(el-date-picker的type设置为"daterange"),你可以使用:picker-options属性来设置选项,通过disabledDate函数来禁止选择当前时间之前的日期。下面是一个el-date-picker(type为"daterange")的示例,它禁止选择今天之前的日期:<el-date-......
  • python requests cookie格式转换
    importrequests#1.查看cookie#2.对比cookie#cookies=[{'domain':'.mingrisoft.com',#'httpOnly':False,#'name':'PHPSESSID',#'path':'/',#......
  • ArgoCD和Argo Rollouts自动化部署应用
    环境说明使用ArgoRollouts部署nginx应用:1.使用Rollout部署nginx2.采用canary部署策略3.结合Analysis进行渐进式交付4.结合IstioVirtualService进行自动化流量分割和流量迁移5.部署清单放在gitrepo中使用ArgoCD进行自动化部署:1.使用Application监视GitRepositor......
  • 房间类型表
    1.创建数据表及字段CREATETABLEhotel_room_type(--房间类型ID,作为主键room_type_idINTPRIMARYKEYAUTO_INCREMENT,--房间类型名称room_type_nameVARCHAR(50),--房间类型描述room_type_descriptionVARCHAR(50),--创建时间,默认为......