TS(1)

131 阅读1分钟

// 原始类型:

let a: number | string | boolean | null | undefined | symbol = 1;

let s: symbol = Symbol();

// 对象类型:

let b: object = {};

// 数组类型:

let numbers: number[] = [1, 2, 3];

let aa: string[] = ["1", "2", "3"];

let strings: Array = ["a", "b"];

// 联合类型:

let arr: (number | string)[] = [1, "2", "a", 3];

// 自定义类型,类型别名:

type myArray = (number | string)[];

let newArr: myArray = [1, "2", "a", 3];

// 函数类型:

function add(num1: number, num2: number): number {

return num1 + num2;

}

const add1 = (num1: number, num2: number): number => {

return num1 + num2;

};

// 函数返回值类型void:

function greet(name: string): void {

console.log(name);

}

// 可选参数,可选参数必须在必选参数之后

function mySlice(start?: number, end?: number): void {

console.log(start, end);

}

// 对象类型

let person: { name: string; age: number; sayHi(name: string): void } = {

name: "jack",

age: 19,

sayHi(name) {},

};

function myAxios(config: { url: string; methos?: string }) {}

myAxios({

url: "",

});

// 接口,描述对象类型,复用(没有=)

// 接口只能为对象指定类型;类型别名可以为任意类型指定别名(=号别忘了,相当于赋值)

interface Person {

name: string;

age: number;

sayHi(): void;

}

type Iperson = {

name: string;

age: number;

sayHi(): void;

};

let person1: Person = {

name: "wyb",

age: 24,

sayHi() {},

};

let person2: Iperson = {

name: "wyb",

age: 24,

sayHi() {},

};

// 接口继承

interface P1D {

x: number;

}

interface P2D extends P1D {

y: number;

}

// 元组类型:和数组比确切知道多少元素(Tuple,数组的特例,明确知道元素个数)

let position: number[] = [1, 2, 3, 4, 5];

let position2: [number, number?] = [1];

// 类型推断:自动推断类型(1、生命变量并初始化时; 2、函数返回值)

// 能省则省,充分利用TS类型推断能力,提升开发效率

function add11(num1: number, num2: string) {

return num1 + num2;

}

// 类型断言:使用as,指定更加具体的类型