• Typescript-01


    本节:自学的一些typescript的就基本语法。

    ts的提示性更强,ts会检查代码 ,ts代码要tsc编译成js代码,才可以正常运行

    一、函数的不同,1.function变成 =>  2.全部的变量 ,数组都加了一个冒号和类型,  变量名:类型

    prototype(允许您向对象添加属性和方法):对象.prototype.增加的属性  = "赋的值"

     数组的不同:就是多了个数组名:类型[]

    TypeScript 元组

    我们知道数组中元素的数据类型都一般是相同的(any[] 类型的数组可以不同),如果存储的元素数据类型不同,则需要使用元组。

    元组中允许存储不同类型的元素,元组可以作为参数传递给函数。

    1. var mytuple = [10,"Runoob"]; // 创建元组
    2. console.log(mytuple[0]) //10
    3. console.log(mytuple[1]) //Runoob
    • 数组名.push() 向元组添加元素,添加在最后面。

    • 数组名.pop() 从元组中移除元素(最后一个),并返回移除的元素。

    数组的赋值:ts可以直接 [赋值的对象] = 赋值的内容  ,而js要一个下标一个下标的赋值

          |  ,?,any  
    ?就是这个变量可以有也可以没有,类型加?就是类型可以是任意类型
    !!返回原来的数
    &交叉类型,就是两种函数里面的参数 都可以使用
    断言,  |选择你要用的对象,指定你要的属性 as any 
    ts里面构造函数要提前声明变量,ts里面要用到的变量都必须提前声明变量
    public全部都可以用,private私有可以用,protected继承它的子类可以用它的变量
    static静态属性,就是不像其他变量要new成实例化对象,就可以直接调用属性,static还有静态函数的,一样直接调用方法就可以了。静态属性,只能用this访问别人的静态属性,别人也不能通过this访问静态函数,只可以用自己的 函数名.静态函数调用。静态函数可以互相调用。
    implements关联另一个接口变量 ,通过接口约束那个类,调用那个类
    constructor构造函数,abstract是抽象类,抽象类是不能被new实例化的

    元组是固定数量,不同类型的数组。
    字符才有length,数字没有length

    通过enum定义 枚举,玫举默认就是012开始的值,增长玫举,就是可以改变第一个数,然后数组就会自己往下递增  
    readonly变量只读,不能改变

    类型推论和类型别名
    类型推论,就是你定义变量,但是不定义类型,ts就会根据你赋值的内容,来推论出你这个变量是什么类型的。
    类型别名就是给每个类型,定义一个新的名字,这样你定义变量的时候,就可以直接用别名。
    type s = string//把string类型,定义成s,后面要定义string类型,就直接用s就可以了
    never表示状态不存在,出现never的时候,说明你赋值的逻辑可能有问题。函数里面, 永远不会有返回值的时候,就定义一个never类型。never只能作为父类型,不能作为子类型赋值,还有就是在switch里面做判断的时候的default,兜底类型,就是出错的时候,可以用never来定义类型
    symbol类型是一个唯一值,symbol类型的值是symbol构造函数创建的,里面传对数字和字符串比较好,不能传对象。 symbol类型的属性要通过 object.getOwnPropertySymbols(变量)才可以被单独打印出symbol类型,reflect.ownKeys(变量)
    symbol.iterator迭代器,迭代器函数,通过输出的done状态,看得,是否输出完了,为true说明输出完了  变量.next()输出迭代
    变量名.set(),可以往map里面放内容。迭代器有什么用。
    生成器 迭代器都只支持数组,不支持对象

    for(let i of arr){}  of是取值的,in是取下标的

    泛型, 定义的时候不明确类型, 传参的时候,再定义类型,ts就会自动进行类型推断,防止代码冗余。可以少定义函数类型,可以用keyof来限制泛型对象。
    泛型类, 
    如果直接在ts文件里面定义变量,则默认为全局的,除非前面加个export导出,就可以变量名重复,不同文件就互不干扰。

    三斜线指令 ,可以导入其他文件
    ///    ///也等于import

    declare声明文件,一些依赖或者模块是通过declare关键字来声明文件的,当然还可以直接下载依赖

    Mixins混入,对象混入和类的混入
    Object.assign(变量名1,变量名2)合并对象,输出的值,为交叉类型,就是什么类型都有
    装饰器Decorator,增加代码的可读性, 
     

  • 相关阅读:
    AI音乐大模型:是创意的助力还是产业的挑战?
    QT 支持window 和 mac下应用程序崩溃检测
    【LeetCode每日一题】——239.滑动窗口最大值
    Vue中动态Class实战
    Java基础-----String类
    【路径规划】基于Dijkstra实现机器人二维路径规划附完整matlab代码
    真正的黑客,往往怀着一颗学徒的心!
    AUTOSAR从入门到精通-基于 CAN 总线的汽车发电机智能调节器(中)
    什么是开源智能家居操作系统?用智汀家庭云搭建一套自己的智能家居
    【Python基础篇】字符串的拼接
  • 原文地址:https://blog.csdn.net/m0_59214979/article/details/126591581