TypeScript基础学习

数据类型

布尔值:let isDone: boolean = false;

数字: let dec: number = 6;

let hex: number = 0xfff;

let bin: number = 0b1010;

let oct: number = 0o744;

字符串:let name: string = ‘bob’;

数组:let list: number[] = [1, 2, 3];

元组类型Tuple:表示一个已知元素数量和类型的数组,当访问一个越界的元素,会使用联合类型替代。

let x: [string, number];

x = [‘hello’, 10];

枚举类型:enum类型可以为一组数值赋予名字,可以由枚举的值得到它的名字

enum Color {Red, Green, Blue}

let c: Color = Color.Green;

 

任意值any类型:声明为any类型,后面赋值可以为任意类型,并且可以调用任意方法。

空值void 类型:与any类型相反,表示没有任何类型。void类型的函数表示没有返回值,void类型的变量只能赋值为undefined 和 null

function warnUser(): void {

    alert("This is my warning message");

}

let unusable: void = undefined;

undefined类型和null类型:是所有类型的子类型,可以赋值给其他类型,当使用 —strictNullChecks标记,null和undefined只能赋值给void类型和自己。

never类型:表示永不存在的值的类型。是任何类型的子类型,可以赋值给任何类型。没有类型是never的子类型或赋值给never类型,除了never本身。

类型断言:类似类型转换,但不进行特殊的数据检查和解构。只在编译阶段起作用。

方法:1.尖括号语法

 

2.as语法

 

类型推论:如果定义变量时候没有指定类型,而且没有赋值会被推断成any类型,如果定义时被赋值之后就只能是这一种类型。

接口(interface):

是对行为的抽象,而具体如何行动需要由类去实现。

普通接口:interface a { color: string; } 可以描述一个对象的形状,属性的类型。定义接口类型的变量必须和接口里面的属性一模一样。

带有可选属性的:interface a { color ?: string; }  可选属性的含义是该属性可以不存在。接口里面可以写可选属性可以对可能存在的属性进行预订义,还可以捕获引用了不存在的属性时的错误。

只读属性:在属性前面加上readonly ,对象一旦赋值,它的所有属性值都不能改变。

任意属性:[propName: string] : any; 一旦定义了任意属性,那么确定属性和可选属性的类型都必须是它的类型的子集。

接口里面可以写可选属性可以对可能存在的属性进行预订义,还可以捕获引用了不存在的属性时的错误。也表示函数类型,方式是一个带有参数列表和参数类型和返回值类型的函数定义。接口还可以描述索引类型,描述了对象索引的类型和相应的索引返回值类型。

数组:

表示方法:类型+方括号,数组范型,接口表示,类数组,任意值数组。

函数类型:

函数声明需要对函数的输入和输出都要约束类型。

函数表达式,除了对匿名函数约束数据类型,还要对函数表达式左侧的变量名定义,使用=>用来表示函数的定义,左边是输入类型,需要用括号括起来,右边是输出类型。

函数也可以用接口定义。

函数里面的参数可以是可选的,使用?:,可选参数的后面不能再加必需参数。参数可以使用默认值。参数可以使用…rest的方式获取函数的剩余参数。

函数可以重载,接受不同数量和类型的参数进行不同的处理,可以使用联合类型,也可以之间重载定义函数类型。

类:

修饰符,public,private,protected

抽象类abstract,供其他类继承的基类,抽象类不允许被实例化,抽象方法必须在子类中被实现。

接口,不同类之间的公有属性或方法,可以抽象成一个接口。接口可以被类实现implements。一个类只能继承自另一个类,但是可以实现多个接口。

泛型

 指在定义函数,接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。

定义泛型的时候可以一次定义多个类型参数。由于泛型不确定它的类型,所以不能随意操作它的属性或方法。

可以对泛型进行约束,让它具有特殊属性,可以使用继承接口来约束,多个类型参数之间也可以互相约束

泛型参数可以设置默认类型,当使用泛型时没有在代码中直接指定类型参数,实际参数页无法推测时,这个默认类型就会起作用。

类型别名:用来给类型起一个新名字,type Name = string || number ;

字符串字面量类型:用来约束取值只能是某几个字符串中的一个。type eventNames = ‘click’ || ‘mousemove’ ;

内置对象

EcmaScript 的内置对象:Boolean、Error、Date、RegExp等;

DOM和BOM的内置对象:Document、HTMLElement、Event、NodeList 等。

声明文件:

全局变量的声明文件以.d.ts为后缀,在tsconfig.json文件中files属性中要配置声明文件。

  • declare var 声明全局变量

  • declare function 声明全局方法

  • declare class 声明全局类

  • declare enum 声明全局枚举类型

  • declare namespace 声明(含有子属性的)全局对象

  • interface 和 type 声明全局类型

  • export 导出变量

  • export namespace 导出(含有子属性的)对象

  • export default ES6 默认导出

  • export = commonjs 导出模块

  • export as namespace UMD 库声明全局变量

  • declare global 扩展全局变量

  • declare module 扩展模块

  • ///  三斜线指令

 

你可能感兴趣的:(FE)