热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

快速学习Typescript基础知识

快速学习Typescript基础知识-原始类型1.string2.number3.null4.boolean5.undefined6.symbolconsta:stri
  1. 原始类型

1.string 2.number 3.null 4.boolean 5.undefined 6.symbol
    const a: string = '123'
    const b: number = 123
    const c:boolean = false
    const d:null = null
    const e:undefined = undefined
    const f:Symbol = Symbol()
  1. object类型

1.object对象 2.Array数组 3.function
    //object类型不单值对象 他是除了原始类型的所有类型
    
    const nfc1: object = ()=>{}      // 可以是函数
    const nfc2: object =  new Array  //可以数组
    const nfc3: object =  new Object //可以是对象
  1. 为对象限制类型

    //1.直接限制每一个参数
    const obj1: { name: string,id: number } = { name:'张三',id:1 }
    //2.使用接口限制  下面单独讲
  1. 为数组限制类型

    //1.使用Array泛型
    const arr1: Array = [1,2,3]  //数组中的每一项只能为数字
    const arr2: number[] = [1,2,3]       //同上
    //2.元祖类型
    const arr3: [number,string,boolean] = [1,'2',true]
  1. 枚举类型

enum DataStatus{
    status1 = 1,
    status2 = 2,
    status3 = 3
}
const data = {
  name:'李四',
  id:0,
  status:DataStatus.status1
}
  1. 函数类型

    //1.函数声明类型约束
    function fn1(a: number,b: string): string{
        return a+'-'+b  //返回值必须为string
    }
    fn1(1,'2')//形参和实参个数必须完全一致
    //如需可选参数  在形参后加?即可
    function fn2(a: number,b: string,c?: boolean): string{
        return a+'-'+b  //返回值必须为string
    }
    fn2(1,'2')//这里不传参数c也可以
    
    //2.函数表达式
    const fn3:(a: number,b: number)=>number = (a,b)=>{
      return a+b
    }
    fn3(1,2)
  1. 任意类型 any

    //使用 any可以为参数a设置为所有类型
    const fn3 = (a: any)=>{
      return a
    }
    fn3(1)
    fn3('1')
    fn3(false)
  1. 隐式类型推断

    //因为第一次为num赋值为number 那么ts为num类型推断为number 
    let num = 1
    num = 100  // 重新赋值num没问题
    num = '100'  // 赋值为字符串报错
  1. 类型断言

    const resolve = [ 100,200,300 ]
    const res = resolve.find(n=>n>1) //此时ts认为res的值有可能是number或者undefined
    const res1 = res as number  //此时我们保证res1的值一定是number
  1. 接口 interfaces

    //1.静态属性
    interface Todo{
      id: number,
      name: string,
      checked?: boolean //可选成员 
      readonly title?: string //这里为title限制为只读的 不可更改 
    }
    //直接定义对象
    const todo: Todo= { id:1,name:'哈哈' } //可以不传入checked
    todo.title = '标题' //因为此时title有readonly限制 此时更改会报错
    //作为参数
    const setTodos = (todo: Todo)=>{
      return todo
    }
    
    //2.动态属性
    interface Toos{
      [key:string]:string //限制对象key(key字段不是固定要求,可自定义)为string类型 值也为string类型
    }
    const toos: Toos = {}
    toos.name = 'hello'
    toos.sex = '男'
  1. 泛型

将定义时无法确认的类型 在使用时用参数进行传递
//T代表string U代表number
const getTodos = (list: T[],num:U): T[] =>{
  return list
}
const res = getTodos(['1','2','3'],U)

推荐阅读
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • 电话号码的字母组合解题思路和代码示例
    本文介绍了力扣题目《电话号码的字母组合》的解题思路和代码示例。通过使用哈希表和递归求解的方法,可以将给定的电话号码转换为对应的字母组合。详细的解题思路和代码示例可以帮助读者更好地理解和实现该题目。 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
author-avatar
手机用户2502902993
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有