vue3+ts的坑、判断数据类型String 与 string

最近也是很多小伙伴们在一起研究vue3+ts这一块,ts 主要是添加了数据类型,这就导致我们写代码的时间加长了不少,博主也是最近在重新学习ts这方面的知识点,给新手小白的建议就是,没有ts基础千万不要直接上ts,硬干会把你干废的,拿下面一个小Demo来说吧。

        这是博主在写一个后台管理平台项目的时候遇到的问题,一个简单的存储cookie

老规矩 话不多说上代码;

cookies.ts

export function setCookie(cname:string,cvalue:String,exdays:number)
{
  var d = new Date();
  d.setTime(d.getTime()+(exdays*24*60*60*1000));
  var expires = "expires="+d.toUTCString();
  document.cookie = cname + "=" + cvalue + "; " + expires;
}

这段代码本身是没有什么问题的,我们接着看数据返回的类型;

type loginDataType = {
  expires_time: number;
  logo_square: String;
  menus: Array<loginmenusType>;
  newOrderAudioLink: String;
  token: string;
  unique_auth: Array<String>;
  user_info: userinfoType;
  version: String
}
export interface loginKeyDataType {
  '/adminapi/login': {
    msg: string;
    status: number;
    data?: loginDataType
  },
}

这里坐一下代码解释,这是我对请求接口后返回的数据类型做一个判断,这样我们在写代码获取数据的时候,就会有一个代码提示,也是为了更好的融入第三方库,例如echarts,这里的token设定为string 字符串类型,细心的小伙伴们可能已经发现错误的地方了。

没发现也不要紧 我们接着看下面的代码

index.ts

 setCookie("token",result.data.token,200)

那么在获取token的时候呢,这个时候错误提示就来了,这个    token    死活给我报错,给我整的纠结了好久,最后呢发现是因为在接口定义中 对token 的类型判断设置 string 写成了小写,导致和 String 类型判断不相符合;

那么问题来了 string 和 String 有什么区别呢?

博主也是查阅了大量的资料,最后总结一下,在编码过程中,不论是使用string 还是String 浏览器都会自动编译成 String ,不信的话F12 ,打印一下string 会出现一个为定义的报错,所以在我们平常认知当中,string 和 String 几乎是没有什么区别的,那么在编码的时候,我们要写成大写还是小写呢?

这个问题当然是分情况对待啦,如果你引入第三方库,例如上面我们说的 echart 还是要根据源码来写的。

第二种就是我们平常写的时候了,博主这里建议写成小写的 string 原因涉及到浏览器的机制,写成小写的读取速度比较快。

以上就是博主今天遇到的小坑,如果有技术大佬了解vue3 ts底层源码方面的问题欢迎留言,一起开发,一起解决问题。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

剑非出我心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值