• TS学习-类型


    一. ts中的类型包含下面这些类型

    数据类型例如说明
    number       1,2,3任意数字
    string'1','2','3'任意字符串
    booleantrue, false布尔值
    字面量其本身,0 | 1 , ‘a’ | 'c',  true|false 三种字面量类型
    any*任意类型
    unknow*类型安全的any,不能直接赋值给别人
    void空值(undefined)没有值或者是undefined
    never        没有值不能是任何值
    object{a:1}任意的js对象
    array[1]任意的js数组
    tuple[4,5]

    元素,TS新增类型,固定长度数组

    enumenum{A,B}枚举,TS中新增类型

     二. 类型断言

    1. 类型断言:可以用来告诉解析器变量的实际类型

            语法: 变量 as 类型         e as string

                        <类型> 变量          e

    2. object

            语法:{属性名: 属性值}

            在属性名后面加 ?表示该属性是可选的

            let obj = {a: string, b?:string}

            ----------------------------

            [propName: string]: any 表示任意类型属性

            let obj = {a: number, [propName: string]: any}

            obj = {a: 1, b:'1' , c: 'abc'}

    3. 函数

    1. type fun = (a: number, b: number) => number;
    2. let fun2:fun = (2, 3) => a + b;

    三.类

            1. class

            继承:extends, 可以继承父类的属性和方法,this指向当前调用者

            super(): 子类实例化时必须在 constructor构造函数中调用super(); 否则无法实例化;

                          调用父类构造函数或者 属性和方法

            静态属性,和实例属性: 只要属性或方法前加上static 就是静态属性或静态方法;实力属性只有通过new Class() 访问的属性才是 实例属性

            2. 抽象类

            abstract: 只能作为父类调用,不能实例化该类;例如

            

    1. abstract class Person {
    2. name:string = '默认的名字'
    3. age: number;
    4. constructor(name:string, age:number) {
    5. this.name = name;
    6. this.age = age
    7. }
    8. }

            3. 接口

            interface: 用来定义一个类或者对象的结构,约束一个类中应该有哪些属性和方法,同时接口也可以当成类型声明来使用

                              接口可以在定义类的时候限制类的结构

    1. interface myInter {
    2. name: string,
    3. age: number
    4. }
    5. let obj: myInter = {
    6. name: '张三',
    7. age: 12
    8. }
    9. // interface 只定义对象的结构,不放实际的值
    10. interface myInter {
    11. name: string,
    12. play():void
    13. }

            4. 修饰符

            public , private,  protected

            1. public  公共的, 本类和其子类都可以访问

            2. private 私有的, 只可以本类访问

            3. protected 受保护的, 本类和子类都可以访问和修改

    1. class A {
    2. public name: string;
    3. private age: number;
    4. get getName(): string {
    5. return this.name
    6. }
    7. }

            5. 泛型

            参考: 一文搞懂 TS 泛型,让你头不再晕_阿宝哥​_的博客-CSDN博客_ts 泛型

  • 相关阅读:
    3.4、Linux小程序:进度条
    C# 中的 Math 数学函数
    从零开始学Spring Boot系列-集成Kafka
    SQL教学:掌握MySQL数据操作核心技能--DML语句基本操作之“增删改查“
    ISO认证好处,ISO9001认证办理流程
    Spring Security(6)
    REST-Framework: 认证组件 | token的介绍和使用
    【BUG记录】关于linux/pytorch等操作/BUG记录——持续更新
    matlab贝叶斯隐马尔可夫hmm模型实现
    制作OpenCV相机标定板棋盘格图像
  • 原文地址:https://blog.csdn.net/TO_Web/article/details/126829213