5分钟上手Typescript

一、typescript之基本类型的赋值

 1、在基本类型赋值时,typescript要求做类型注解,格式为 let 变量 :类型=符合类型的值

  number类型

    let a:number=123; //a只能赋值number ullundefined类型,可以赋值2进制、8进制和16进制,如let a:number=0x16

  string类型

    let b:string='234242'; //b只能赋值string ullundefined类型

  boolean类型

    let c:boolean=true; //c只能赋值boolean ullundefined类型,如true | false;  

  null 类型

    let d:null=null; //null是其他基本类型的子集可以直接赋值给其他类型如:let d:number=nulll 、let d:string=null;

  undefined类型

    let e:undefined=undefined;  //undefined 是其他类型的子集,可以赋值给其他类型,与null相似

注释:1、基本类型存储在栈区、运行速度快、存储空间小。

   2、null为空,undefined指的是定义了但未赋值的变量,如 let a; a的值就为undefined;

  二、引用类型的赋值

    1、对象的赋值

    

interface Person {
    readonly id: number;    //定义的值的前面加readonly代表只读属性,不能第二次赋值
    name: string;
    age?: number;    //?:的含义是可选参数可写,可不写
}
let obj: Person = {   //对象使用接口进行类型注解
    id: 123,     //inerface定义的、除了?:可选参数外,其他定义的属性必须要有.
    name: '123',
}

   2、函数的赋值

    

const test = function (a: number, b: string, c: number = 10): string { 
    if (typeof c == 'number') {
        return a + b + c
    } else {
        return a + b;
    }
}
let a: (a: number, b: string, c: number) => string = test;  //test的值是一个函数,ts有类型推断、判断出test的类型是函数,所以赋值给a,a也必须是一个函数。

  3、类的赋值

//public private protected static
class Anima {
    name: string = '123';   //name前可以加public属性,加public,它的实例、及继承它的class都可以使用name属性,private,只有它自己内部能使用、protected只有继承它的class可以使用(extends);static 表示静态属性可以直接访问,如Anima.name;
    static write() {
        console.log("写")
    }
    speak() {
        console.log("我说");
    }

    instance(b) {
        console.log(b instanceof Anima);
    }
}

var anima = new Anima();
// console.log(anima.name);
// Anima.write();
class a extends Anima {
    constructor() {
        super();
        console.log(this.name, 12342);
    }
}
// console.log(anima.instance(a))

  4、数组与元组

   1、数组

    let a:number[]=[1432]; //number 可以为其他类型,这种写法,代表内部只能有一种数据类型

   2、元组

    let a:[string,number]=['a',123];   //顺序不能返,不能少

注释: 1、引用类型的引用地址放在栈区、值放在堆区

  2、let a: (a: number, b: string, c: number) => string = test;值的是ts里的函数类型,不是es6的定义

原文地址:https://www.cnblogs.com/uimeigui/p/12899482.html