您需要进一步约束泛型类型参数:
function ReturnFirst<Type extends Array<any>>(items: Type): Type[number] {
return items[0];
}
不过,还有更优雅的写法:
function ReturnFirst<Type>(items: Type[]): Type {
return items[0];
}
const item1 = [1, 2, 3, 4, 5];
const item2 = ['a', 'b', 'c'];
const item3 = [true, false, true, true];
const item4 = [{name:'one'}, {name:'two'}, {name:'three'}, {name:'four'}];
const result1 = ReturnFirst(item1);
const result2 = ReturnFirst(item2);
const result3 = ReturnFirst(item3);
const result4 = ReturnFirst(item4);