TS常用合集

371 阅读1分钟

基础类型

let isDone: boolean = false;
let decLiteral: number = 6;
let name: string = "bob";

let list: number[] = [1, 2, 3];
let list: Array<number> = [1, 2, 3];

let x: [string, number];
x = ['hello', 10]; // OK

枚举
enum Color {Red, Green, Blue}
let c: Color = Color.Green;

let notSure: any = 4;

let u: undefined = undefined;
let n: null = null;

类型断言

类型断言有两种形式。 其一是“尖括号”语法:
let someValue: any = "this is a string";
let strLength: number = (<string>someValue).length;
另一个为as语法:
let someValue: any = "this is a string";
let strLength: number = (someValue as string).length;

接口

interface LabelledValue {
  label: string;
}

function printLabel(labelledObj: LabelledValue) {
  console.log(labelledObj.label);
}

let myObj = {size: 10, label: "Size 10 Object"};
printLabel(myObj);

可选属性

interface SquareConfig {
  color?: string;
  width?: number;
}
如果 SquareConfig带有上面定义的类型的colorwidth属性,并且还会带有任意数量的其它属性,那么我们可以这样定义它:

interface SquareConfig {
    color?: string;
    width?: number;
    [propName: string]: any;
}

只读属性

interface Point {
    readonly x: number;
    readonly y: number;
}

函数类型接口

interface SearchFunc {
  (source: string, subString: string): boolean;
}

接口继承

interface Shape {
    color: string;
}

interface Square extends Shape {
    sideLength: number;
}

let square = <Square>{};
square.color = "blue";
square.sideLength = 10;