数值 number

字符串 string

布尔值 boolean

数组 Array:Array<type> \ type[]

元组 tuple 固定长度、固定类型

联合 union:typeA | typeB

字面量 literal

枚举 enum

任意类型 any \ unknown(保证类型安全)

void:函数没有返回值

undefined 函数返回值为空 \ 定义未赋值

never:函数不可能执行完成:死循环、报错

类型适配 Type Assertions:将任意类型转化成特定类型;(<type>property) 、 property as type

let someValue: any = "this is a string";
let strLength: number = (<string>someValue).length;
// let strLength: number = (someValue as string).length;

函数类型

对象类型 object

接口 interface \ 实现 implements:多次定义

类型声明 type

类 class

访问修饰符 Access modified:public、private、protected

get \ set

泛型 Generice

function nameGenerics<T>(t: T) {
  console.log(typeof t);
}

nameGenerics(1);
nameGenerics("s");
interface IPoint {
  // x: number;
  // y: number;
  X: number;
  drawPoint: () => void;
}

class Point implements IPoint {
  // x: number;
  // y: number;
  // constructor(x: number, y: number) {
  //   this.x = x;
  //   this.y = y;
  // }

  constructor(private x: number, private y: number) {
    this.x = x;
    this.y = y;
  }
  drawPoint() {
    console.log("x: ", this.x, ", y: ", this.y);
  }

  set X(value) {
    this.x = value;
  }

  get X() {
    return this.x;
  }
}

let point = new Point(2, 3);
point.drawPoint();
point.X = 3;
point.drawPoint();

声明文件

创建 xxx.d.ts 文件

declare var 声明全局变量
declare function 声明全局方法
declare class 声明全局类
declare enum 声明全局枚举类型
declare namespace 声明(含有子属性的)全局对象
interface 和 type 声明全局类型

配置文件

{
  "compilerOptions": {},  // 重点
  "files": [],  // 编译文件,文件名,可选
  "include": [], // 编译文件,正则,可选
  "extends": "",  // 继承其他配置文件  
  "exclude": [],  // 排除,可选
  "references": [] // 指定要引用的项目,可选
}

snowofcat
1 声望0 粉丝

没事早点睡,有空多赚钱,平时多读书


下一篇 »
ES新特性