Typescript 从入门到放弃系列(十)-类型推断

788 阅读1分钟

一.赋值推断

赋值时推断,类型从右像左流动,会根据赋值推断出变量类型

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;
// }