1-静态类型
const count: number = 1;
interface zhangsan {
name: string;
age: number;
}
const people: zhangsan = {
name: "张三",
age: 20,
};
console.log(people);
2-基础静态类型和对象类型
const count1: number = 123;
console.log(count1);
const myName: string = "王麻子";
const aa: boolean = false;
const bb: null = null;
const cc: undefined = undefined;
const xiaohong: {
name: string;
age: number;
} = {
name: "张三",
age: 15,
};
console.log(xiaohong);
const a1: string[] = ["111"];
const a2: number[] = [1, 2, 3];
class Person {}
const zhangsan: Person = new Person();
const xx: () => string = () => {
return "123";
};
const xx1: () => number = () => {
return 123;
};
function a(): string {
return "123";
}
3- 类型注解和类型推断
let count2 = 12;
const one = 1;
const two = 2;
const three = one + two;
function getTotal(one: number, two: number) {
return one + two;
}
const total = getTotal(1, 2);
const xiaohui = {
name: "小惠",
age: 20,
};
4- 函数参数和返回类型定义
function getTotal1(one: number, two: number): number {
return one + two;
}
const total2 = getTotal1(1, 2);
function getStr(v: string): string {
return "" + v;
}
getStr("aaa");
function hasNoReturnFunc(): void {
console.log(1111);
}
function errorFunction(): never {
throw new Error();
console.log("这里永远也执行不到");
}
function forNever(): never {
while (true) {}
console.log(12121);
}
function add({ one, two }: { one: number; two: number }) {
return one + two;
}
const sum = add({ one: 1, two: 3 });
console.log(sum);
function getnumber({ one }: { one: string }) {
return one;
}
console.log(getnumber({ one: "xxx" }));
5- 数组类型定义
const numberArr = [1, 2, 3];
const aaa2 = ["12", "1212", "1212"];
const hunheArr = [1, "2", 3, false];
const lianhe: (string | number | boolean)[] = [1, 2, 3, "1212", false];
const c1: null[] = [null, null];
const c2: undefined[] = [undefined, undefined, undefined];
const person = [
{ id: 1, name: "张三", age: 20 },
{ id: 2, name: "李四", age: 21 },
{ id: 3, name: "王五", age: 22 },
];
const person1: { id: number; name: string; age: number }[] = [
{ id: 1, name: "张三", age: 20 },
{ id: 2, name: "李四", age: 21 },
{ id: 3, name: "王五", age: 22 },
];
type p1 = { id: number; name: string; age: number };
const person2: p1[] = [
{ id: 1, name: "张三", age: 20 },
{ id: 2, name: "李四", age: 21 },
{ id: 3, name: "王五", age: 22 },
];
class p2 {
id: number;
name: string;
age: number;
}
const person3: p2[] = [
{ id: 1, name: "张三", age: 20 },
{ id: 2, name: "李四", age: 21 },
{ id: 3, name: "王五", age: 22 },
];
6- 元组
const xiaopengyous = ["小张", "小花", "小红"];
const arr1 = ["1221", 1, "121"];
const arr2: [number, string, number, string] = [1, "12", 1, "34"];
const xxx3: [string, number, string][] = [
["121", 12, "32323"],
["121", 12, "32323"],
["121", 12, "32323"],
["121", 12, "32323"],
];
7- 接口
const screenResume = (name: string, age: number, height: number) => {
age < 30 && height >= 170 && console.log(name + "通过");
(age >= 30 || height < 170) && console.log(name + "被淘汰");
};
const getResume = (name: string, age: number, height: number) => {
console.log(name + "年龄是:" + age);
console.log(name + "身高是:" + height);
};
interface People {
name: string;
age: number;
height: number;
}
const wangwu: People = {
name: "王五",
age: 28,
height: 185,
};
const zhaoliu: People = {
name: "赵六",
age: 22,
height: 159,
};
const screenResume1 = (people: People) => {
people.age < 30 && people.height >= 170 && console.log(people.name + "通过");
(people.age >= 30 || people.height < 170) &&
console.log(people.name + "被淘汰");
};
const getResume1 = (people: People) => {
console.log(people.name + "年龄是:" + people.age);
console.log(people.name + "身高是:" + people.height);
};
getResume1(zhaoliu);
8-泛型
function join<T>(first: T, second: T) {
return `${first}${second}`;
}
function fanxing<ANY>(params: Array<ANY>) {
return params;
}
console.log(fanxing<string>(["11", "22"]));