[英]Typescript generic interface function
I have a little problem with my generic interface function.我的通用接口函数有点问题。 I guess I watched too long on the same point... can someone please show me what Iam doing wrong?
我想我在同一点上看得太久了……有人可以告诉我我做错了什么吗?
Interface:界面:
export interface Compareable<T>
{
equals(compareable:T):boolean;
}
function:功能:
function isInCompareableArray<T>(compareable:Compareable<T>, arr:Array<Compareable<T>>) : boolean
{
for(let i of arr)
{
if (compareable.equals(i)) return true;
}
return false;
}
call:称呼:
let dateRef:DateRef //DateRef implements Compareable<DateRef>
let arr:Array<DateRef>
isInCompareableArray<DateRef>(dateRef, arr);
Error:错误:
ERROR in function ... if (compareable.equals(i)) return true;
...: Argument of type 'Compareable<T>' is not assignable to parameter of type 'T'.
Iam bit lost here.我有点迷失在这里。 Can you help?
你能帮我吗?
It should be:它应该是:
function isInCompareableArray<T>(compareable: Compareable<T>, arr: Array<T>): boolean {
for (let i of arr) {
if (compareable.equals(i)) return true;
}
return false;
}
Where the array is of type Array<T>
(or simply T[]
) instead of Array<Compareable<T>>
.其中数组的类型为
Array<T>
(或简单的T[]
)而不是Array<Compareable<T>>
。
Oh my... shame on me :) I lost the scope.哦,我的......我很惭愧:) 我失去了范围。
This works:这有效:
function:功能:
export function isInCompareableArray<T>(compareable:Compareable<T>, arr:Array<T>) : boolean ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.