Ts

news/发布时间2024/5/5 11:26:21

  • [ 基础用法 ]
    • 声明数据类型 和 方法断言
    let str: string = 'hello world'
    console.log(str)
    const arr: number[] = [1, 2, 3]
    const result = arr.find(i => i > 2) as number | undefined
    result ? console.log(result): console.log('not find')
    • 数组和元组
    // 声明了元素类型后,数组存储指定类型的元素
    let arr1: number[]
    let arr2: Array<string>// 元组可以定义简单的多类型元素组成的数组
    // 元组在一定程度上限定了内部元素的数量
    let arr3: [number, string, boolean?] = [1, 'mary', false]
    let arr4: [number, string, boolean?] = [1, 'mary']
    
    • 枚举 通过值可以获得下标,通过下标可以获得值
    enum e {A, B, C
    }
    console.log(e.A) // 0
    console.log(e[0]) // A
    
    • void 当函数没有返回值的时候,断言用 void
    • Function 函数断言的 undefined 可以写成 void
    function add(a:number = 0, b:number = 0):number | void{return (a + b) || undefined
    }
    console.log(add(1, 2))
    
    • interface 接口
    interface Obj {name: string,age: number
    }
    const obj: Obj = {name: 'jsck', age: 20
    }
    
    • type 预定义数据类型
    type List = number[] | null
    let list:List = nulllist = [1,2,3]type Person = {name: string, age: number}
    const p = {name: 'jack', age: 20}
    
    • 泛型,可以在调用的时候在传入实际类型声明
    • 泛型和继承配合使用可以提高代码效率
    • 泛型声明了所继承的类后,就可以调用共同父类的属性和方法来实现代码复用了。
    class PP {constructor(protected name: string = 'PP') {}public say() {console.log(this.name)}
    }
    class PPA extends PP {constructor(protected age: number = 12) {super('ppa')}
    }
    class PPB extends PP {constructor(protected need: boolean = true) {super('ppb')}
    }
    const ppa = new PPA()
    const ppb = new PPB()
    function sayName<T extends PP>(pp: T): void {pp.say()
    }
    sayName(ppa)
    sayName(ppb)// 这里实际上隐形的使用了泛型
    function sayname(pp: PP): void {pp.say()
    }
    sayname(ppa)
    sayname(ppb)
    

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/38707830.html

    如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

    相关文章

    实验二:用户需求分析

    一、实验题目 :需求分析 二、实验目的 1、掌握StarUML软件的安装; 2、掌握利用StarUML工具分析、设计、绘制用例图; 3、掌握利用StarUML工具分析、设计、绘制类图; 4、掌握利用StarUML工具分析、设计、绘制状态图; 5、掌握利用StarUML工具分析、设计、绘制顺序图。 6、掌握…

    小心!这些错误操作可能导致企业信息泄露!

    在当今的数字经济中,企业信息安全已成为保障公司持续运营的核心要素。每一个不经意的操作,都可能成为导致敏感信息泄露的关键。在这篇文章中,我们将聚焦于那些看似无害但实际上充满风险的日常操作,帮助企业识别并避免这些潜在的威胁。内部员工的不当行为是导致企业信息泄露…

    ROS笔记5--动作通讯

    1、动作通讯简介 机器人是一个复杂的智能系统,并不仅仅是键盘遥控运动、识别某个目标这么简单,我们需要实现的是送餐、送货、分拣等满足具体场景需求的机器人。在这些应用功能的实现中,另外一种ROS通信机制也会被常常用到——那就是动作。 从这个名字上就可以很好理解这个概…

    使用rollup打包一个npm包

    使用rollup打包一个npm包 前言:在这个都在使用 npm install,来安装包的时代,你是否想发布一个自己的npm包,或者你工作中是否要发布一个npm包,来到你的项目中到处使用呢?(不晓得npm是什么的请移步:npm) 那么今天我们就来学习一下怎样打包一个自己的npm包 1.首先准备环境 …

    矩阵求导(一)

    前言 在大学的微积分课程中,我们学习过关于标量函数的导数。但是当我们求解一个多元函数的极值时,单独一个自变量的偏导数往往不能告诉我们太多信息,于是我们有一种天然的想法是要把每个自变量的偏导数放在一起,看看他们的联合效果如何。这个过程其实是一个向量求导的过程。…