TypeScript中的类型推导
文章类型:TypeScript
发布者:admin
发布时间:2023-04-14
类型推导 —— 通过已知的类型来推断另一个类型, 类型推导是仅仅在初始化的时候进行推导,
指编程语言中能够自动推导出值的类型的能力,不用显式的进行类型注解,ts 会自动推断出类型。
一:定义变量,变量的类型,由定义推断
let foo = 123; // foo 是 'number'
二:函数返回类型
function add(a: number, b: number) {
return a + b;
}
三:赋值
type Adder = (a: number, b: number) => number;
let foo: Adder = (a, b) => a + b;
四:结构化
let d = { a: 123, b: 234 };
// d.a = '123'; // Error:不能把 'string' 类型赋值给 'number' 类型
五:上下文推导
window.onmousedown = function(mouseEvent) {
console.log(mouseEvent.button); // 这种情况,根据onmousedown,typescript可以推导出右边是个函数,那么mouseEvent就是一个回调函数的入参,会认为是个any
};
六:复杂类型
1:使用keyof关键字的使用
type Point = { x: number; y: number };
type P = keyof Point; // type p = x | y
2:typeof 关键字的使用,
let s = 'hello';
type N = typeof s; // type N = string
function f() {
return { x: 10, y: 3 };
}
//
type O = typeof f; // type O = () => { x: number; y: number;}
3:in 关键字的使用,用于取联合类型的值。主要用于数组和对象的构造
type Name = 'firstName' | 'lastName';
type TName = {
[key in Name]: string;
};