一.赋值推断
赋值时推断,类型从右像左流动,会根据赋值推断出变量类型
let str = 'james';
let age = 18;
let boolean = true;
二.返回值推断
自动推断函数返回值类型
function sum(a: string, b: string) {
return a + b;
}
sum('a','b');
三.函数推断
函数从左到右进行推断
type Sum = (a: string, b: string) => string;
const sum: Sum = (a, b) => a + b;
四.属性推断
可以通过属性值,推断出属性的类型
let person = {
name:'james',
age:18
}
let {name,age} = person;
五.类型反推
可以使用typeof关键字反推变量类型
let person = {
name:'james',
age:18
}
type Person = typeof person
// type Person = {
// name: string;
// age: number;
// }
六.索引访问操作符
interface IPerson {
name: string;
age: number;
job: {
address: string;
};
}
type job = IPerson["job"];
// type job = {
// address: string;
// }
七.类型映射
interface IPerson {
name:string,
age:number
}
type MapPerson = {[key in keyof IPerson]:IPerson[key]}
// type MapPerson = {
// name: string;
// age: number;
// }