[Typescript] Generics using TypeScript

本文探讨了编程语言中使用泛型的关键原因,并通过多个TypeScript实例展示了如何有效地运用泛型来避免常见的编程错误。文章还提供了具体的类定义及函数实现案例。

In this lesson we cover the key reason why programming languages need generics. We then show how use them effectively with TypeScript. We show plenty of examples where generics prevent common programming mistakes.

 

class Query<T> { 
    protected items: T[];
    push(item:T) { this.items.push(item) }
    pop():T { return this.items.shift()} 
}

const q = new Query<number>();
q.push("1"); // compiler error
q.push(1);
const res = q.pop();

 

function reverse<T>(ary: T[]): T[] { 
    return ary.slice().reverse();
}

const ary = [{ name: "one" }, { name: "two" }];
const ary2 = [{ name2: "one" }, { name: "two" }];
const res = reverse<{name: string}>(ary);
const res2 = reverse<{name: string}>(ary2); // compile error for {name2: "one"}
res.push({ name2: "three" }); // compile error

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值