Typescript学习笔记2:快速入门Typescript
程序员文章站
2022-07-03 22:10:40
...
Generics 泛型
在定义函数和类的时候,使用Generics可以不预先指定类型
// Generics
function echo<T> (arg: T): T{
return arg;
}
const result = echo(123)
// 泛型也可以传入多个值
function swap<T, U>(tuple: [T, U]): [U, T] {
return [tuple[1], tuple[0]]
}
const result = swap(['string', 123])
// Generics 可以根据你传参自动推断类型
当你需要传入某些具有特征的参数时,需要约束泛型的类型
// 泛型约束
// 定义一个接口来约束泛型
interface IWithLength {
length : number;
}
// 在定义泛型的时候去继承我们的接口
function echo2<T extends IWithLength> (arg: T): T{
return arg;
}
const result2 = echo2('123');
const result3 = echo2({length : 0,hight : 2});
// 类上面的使用
class Queue<T>{
private data = [];
push(item: T){
return this.data.push(item);
}
pop(){
return this.data.shift();
}
}
// interface上的使用
interface data<T,U>{
key : T,
value : U
}
let map : data<string , string> = {key : '1',value : '1'}
类型别名
给自定义类型取个别名,方便其他地方使用
type stringOrNumber = string | number;
let result: stringOrNumber;
// 字符串字面量
const str: 'yes' = 'yes'
const num: 1 = 1
type Directions = 'Up' | 'Down' | 'Left' | 'Right'
let toWhere: Directions = 'Up'
声明文件
安装声明文件
npm install --save @types/jquery
上一篇: 神医华佗