首页 > 其他分享 >ts里面的 ! 和 ? 还有 as以及各种符号的意义以及使用

ts里面的 ! 和 ? 还有 as以及各种符号的意义以及使用

时间:2024-03-25 20:46:48浏览次数:23  
标签:string 符号 ss 以及 ts url undefined method option

ts里面的 ! 和 ? 还有 as以及各种符号的意义以及使用

 

https://www.jianshu.com/p/dd304d5cb3dc

  • 类型断言---as
    把一个大的范围断言成小的、精确的范围
type Method = 'GET' | 'POST'
function dd(url: string, method: Method) {
    console.log('lll');

};
let option = {
    url: 'https:',
    method: 'POST'
}
// dd(option.url, option.method)第二个参数会报错的,因为option.method的值是个字符串类型,而不是自己定义的Method类型
//可以用类型断言 as 因为string类型是大的范围,缩小到'POST'和'GET'这种小范围的类型
dd(option.url, option.method as Method)


//当然也可以给option定义一个类型
type getOption = {
    url: string,
    method: Method
}
let option:getOption  = {
    url: 'https:',
    method: 'POST'
}
dd(option.url, option.method)
  • 非空类型断言----!
    表示确定某个标识符是有值的,跳过ts在编译阶段对它的检测
function aa(value?:string){
    //加上 ! 的意思是确保value一定是有值的
    console.log(value!.length);
}
aa('ppp');

  • 可选链操作符----?.
    它的作用是当对象的属性不存在时,会短路,直接返回undefined,如果存在,那么才会继续执行。
type person = {
    name: string,
    age: number,
    friend?: {
        name: string,
        age?: number
    }
}
let p: person = {
    name: '张三',
    age: 10,
}
console.log(p.friend?.name);
  • ?? 和 !!的作用
    !! 将一个其他类型转换成boolean类型,类似于Boolean()
    ?? 空值合并操作符,当操作符的左侧是null或者undefined时,返回其右侧操作数,否则返回左侧操作数
let ss:string|null|undefined=undefined;
console.log(ss??'你好');
//ss??'你好' 可以给ss添加默认值 '你好' 意思就是如果 ss有值而且不是null和undefined时,ss就是上面赋给的值,如果是null或者undefined,ss的值就是默认值'你好'

标签:string,符号,ss,以及,ts,url,undefined,method,option
From: https://www.cnblogs.com/sexintercourse/p/18095280

相关文章

  • TTS通用播放库技术设计
    TTS音频播放库技术设计目录介绍01.整体介绍概述1.1项目背景介绍1.2遇到问题1.3基础概念介绍1.4设计目标1.5问题答疑和思考02.技术调研说明2.1语音播放方案2.2TTS技术分析2.3语音合成技术2.4方案选择说明2.5方案设计思路2.6文本生成音频03.系统TT......
  • Typora语法以及使用
    【一】下载Typora【1】下载官网Typora官方中文站(typoraio.cn)89元/3台设备/免费升级风格极简/多种主题/支持macOS,Windows及Linux实时预览/图片与文字/代码块/数学公式/图表目录大纲/文件管理/导入与导出……【2】破解百度云网盘:链......
  • Elasticsearch:使用在本地计算机上运行的 LLM 以及 Ollama 和 Langchain 构建 RAG 应用
    无需GPU的隐私保护LLM。在本博客中,我将演示使用不同的工具Ollama构建的RAG应用程序。与本文相关的所有源代码均已发布在github上。请克隆存储库以跟随文章操作。我们可以通过如下的方式来克隆:gitclonehttps://github.com/liu-xiao-guo/ollama_es什么是 Ollam......
  • Django框架之requests对象
    【一】requests对象引入【1】提交GET请求前端form表单中action属性,如果不写的话,默认就是向当前路由请求form表单中的method属性,如果不写默认就是GET请求<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title>{%lo......
  • react 中echarts-for-react使用resize解决图表自适应问题
     importReact,{PureComponent}from"react";importReactEchartsfrom'echarts-for-react';import{useEventListener}from'ahooks';useEventListener('resize',()=>{ref?.current?.getEch......
  • 【VTKExamples::Points】第十期 NormalEstimation
    很高兴在雪易的CSDN遇见你 VTK技术爱好者QQ:870202403   公众号:VTK忠粉前言本文分享VTK样例NormalEstimation,并解析接口vtkPCANormalEstimation,希望对各位小伙伴有所帮助!感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步!你的点赞就是我的动力(^U^)ノ~YO1.Norm......
  • Effects of Anti Pimples
    看这篇题解这种转化应该比较容易吧,考虑贡献就好了。。转化之后将\(a\)升序排序应该也是比较自然的讲一下为什么这种转化是正确的:我们考虑一一映射。对原来的一个子序列,我们按照其最大值为第一关键字,下标为第二关键字进行排序,显然会唯一映射到某一序列;对排序之后的序列,我们不妨假......
  • 加载权重时候出现:not created its variables yet
    ValueError:UnabletoloadweightssavedinHDF5formatintoasubclassedModelwhichhasnotcreateditsvariablesyet.CalltheModelfirst,thenloadtheweights.这个错误是由于尝试将保存在HDF5格式中的权重加载到一个还未创建其变量的子类模型中所导致的......
  • CTS测试流程
     CTS测试条件和步骤:需要使用linux系统主机需要主机连接外网跑cts需要在本地有AndroidSDK环境,最好要对应Android大版本需要到https://source.android.google.cn/docs/compatibility/cts/downloads?hl=zh-cn下载对应测试套件。linux电脑应下载arm类别的测试套件(约4Gb)执行命令......
  • redis哨兵 ,redis集群 缓存 以及某些问题: 最左前缀原则,,celery架构
    Redis哨兵#主从复制存在的问题:#1主从复制,主节点发生故障,需要做故障转移,可以手动转移:让其中一个slave变成master-哨兵解决#2主从复制,只能主写数据,所以写能力和存储能力有限-集群来解决#搭建哨兵的目的一旦一主多从的架构,主库发生故障,能够自动转移一......