ts 泛型

软件工程的主要目的是构建不仅仅明确和一致的api,还要让你的代码具有很强的重要性:
1.比如我们可以通过函数来封装一些api,通过传入不同的函数参数,让函数帮忙我们完成不同的操作;
2.但是对于参数的类型是否也可以参数化呢?

function sum(num1:number,num2:number){
return num1+num2

}
sum(10,20)


//动态传类型

function sum<Type>(num1:Type,num2:type):Type{

}

function sum<Type>(num1:Type):Type{
return num1
}
sum<number>(1,2)
sum<{name:string}>({name:"why"})
sum<any[]>(["abc"])

//如果不给类型那么类型推导字面量类型
sum(1)


//泛型还可以传多个类型
function sun<E,F>(num1:E,num2:F){}
sum<number,string>(213,'231')

泛型就是将类型参数化
function sun<E,F,o,k>(num1:E,num2:F,num3?:o,...num4:o){}
//必选参数和可选参数
sum<number,string>(213,'231')

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
TypeScript 的可以让我们编写可重用的代码组件,这些组件可以支持多种类是 TypeScript 的一个强大特性,它可以在函数、类、接口中使用。 的基本语法是在函数名或类名后加上 "<T>"(T可以是任何标识符),这个T表示类变量,它可以代表任意类。例如: ```typescript function identity<T>(arg: T): T { return arg; } let output = identity<string>("hello world"); console.log(output); // 输出 hello world ``` 在上面的例子中,我们定义了一个名为 identity 的函数,它接收一个参数 arg,并返回该参数。在函数名后面加上了 "<T>",这样我们就可以在函数中使用类变量 T,代表任意类。 调用 identity 函数时,我们可以明确指定 T 的类,例如:identity<string>("hello world"),这表示 T 的类是 string。也可以不指定 T 的类,TypeScript 会根据传入的参数自动推断出 T 的类,例如:identity("hello world"),TypeScript 会自动将 T 推断为 string。 还可以用于类和接口中,例如: ```typescript interface GenericIdentityFn { <T>(arg: T): T; } class Identity<T> { private value: T; constructor(value: T) { this.value = value; } getValue(): T { return this.value; } } let myIdentityFn: GenericIdentityFn = identity; let myIdentity = new Identity<string>("hello"); console.log(myIdentity.getValue()); // 输出 hello ``` 在上面的例子中,我们定义了一个名为 GenericIdentityFn 的接口,它定义了一个函数。我们还定义了一个名为 Identity 的类,该类接收一个类参数 T,并存储一个类为 T 的值。 通过,我们可以编写可重用的代码组件,它可以支持多种类,提高代码的复用性和灵活性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叮咚前端

你的鼓励是我们的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值