ts泛型 不能将类型“string”分配给类型“U”。 “U”可以使用与“string”无关的任意类型进行实例化。

文章展示了在TypeScript中定义的泛型函数`cyc<T,U>`遇到类型不匹配的问题,通过在返回值前添加类型断言`<U>`进行类型转换,解决了`string`不能被赋值给`U`的错误。示例代码展示了如何正确调用该函数。
摘要由CSDN通过智能技术生成
function cyc<T,U>(msg:T):U{
    let str:string="你输入了:";
    str+=msg;
    return str;
}
var log=cyc<string,string>("1");
console.log(log)
var log1=cyc<number,string>(2);
console.log(log1)

报错如下

不能将类型“string”分配给类型“U”。
“U”可以使用与“string”无关的任意类型进行实例化。ts

解决方案

function cyc<T,U>(msg:T):U{
    let str:string="你输入了:";
    str+=msg;
    return <U>str;
}
var log=cyc<string,string>("1");
console.log(log)
var log1=cyc<number,string>(2);
console.log(log1)

强转<U>

TSTypeScript)是一种静态类型检查的高级编程语言,它是JavaScript的超集。在TS中,基础类型泛型都是其重要的概念。 基础类型指的是TS中预定义的简单数据类型,例如:number、string、boolean、null、undefined等。基础类型用于表示变量或函数的数据类型,可以直接赋值给变量,也可以用作函数的参数和返回值类型。基础类型的定义和使用非常简单,只需要在变量或函数的类型声明中指定即可。 泛型(Generic)是一种在编程中广泛使用的概念,它允许我们在定义函数、或接口时使用可变的类型使用泛型可以提高代码的复用性和灵活性。在TS中,使用<>符号来声明使用泛型,并通过类型参数来指定具体的类型。 例如,定义一个泛型函数: function identity<T>(arg: T): T { return arg; } 这个函数使用泛型类型参数T,可以接受不同类型的实参,并返回相同类型的值。通过使用泛型,我们可以传入任意类型的参数,而不需要重写多个函数。 另外,在TS中还可以使用泛型约束来限制泛型类型的操作。通过在泛型类型参数后面添加extends关键字和约束类型,可以确保传入的类型必须满足特定条件。 总结起来,TS中的基础类型泛型都是为了增强代码的可读性、可维护性和可靠性而设计的。基础类型用于定义简单的数据类型,而泛型则用于创建更灵活和可复用的函数、和接口。在实际开发中,合理使用基础类型泛型,可以提高代码的质量和开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

雪狼之夜

打个赏,让博主知道博文没白写

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

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

打赏作者

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

抵扣说明:

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

余额充值