一、typescript之基本类型的赋值
1、在基本类型赋值时,typescript要求做类型注解,格式为 let 变量 :类型=符合类型的值
number类型
let a:number=123; //a只能赋值number\null\undefined类型,可以赋值2进制、8进制和16进制,如let a:number=0x16
string类型
let b:string='234242'; //b只能赋值string\null\undefined类型
boolean类型
let c:boolean=true; //c只能赋值boolean\null\undefined类型,如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的定义
浙公网安备 33010602011771号