function add<T>(num:T):T{
return num + 2 // Operator '+' cannot be applied to types 'T' and 'number'.(2365)
}
const res = add<number>(5)
console.log('res',res)
注释处划了红线~ 请教下怎么修改
function add<T>(num:T):T{
return num + 2 // Operator '+' cannot be applied to types 'T' and 'number'.(2365)
}
const res = add<number>(5)
console.log('res',res)
注释处划了红线~ 请教下怎么修改
function add(num: number): number
function add(num: string): string
function add(num: any): any {
return num + 2
}
const res = add(1)
const res1 = add('1')
console.log('res', res, res1)
function add (num: boolean): number;
function add (num: number): number;
function add (num: unknown): string;
function add (num?: undefined): number;
function add (num?: any): number | string {
return num + 2;
}
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答5.2k 阅读✓ 已解决
1 回答3.4k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
没有对T进行约束,T可以是任何类型,可以是number,string,也可以是boolean,如果是number的话确实没问题,但是如果是boolan的话,在ts中就无法相加,因为ts是强类型语言,所以会报错,
简而言之 ,你这样其实是给num和函数的返回给了一个任意类型,但是return的时候你你又给这个任意类型加了一个number类型,ts无法确定到最终的类型,所以会提示报错。