На основе предоставленного вами дополнительного кода функция customZip
возвращает тип any
, что, конечно, вызывает проблемы позже, поскольку массив будет иметь тип any
вместо логического PersonType[]
:
export function customZip(...arrays: Array<any>){
return arrays
}
Чтобы исправить это, достаточно просто использовать концепцию обобщений в TypeScript , которая позволяет компилятору самостоятельно определять тип массива:
export function customZip<T>(...arrays: Array<T>){
return arrays
}
См. Пример проверки концепции .
Вы можете указать тип или просто позволить TypeScript выводить сам по себе. На самом деле это не имеет значения: оба будут правильно скомпилированы:
// You let TypeScript do the inferring by itself
const people = [
...customZip([{name: 'apl', value: 'apple', gender: true},
{name: 'gal', value: 'google', gender: false},])
];
... или ...
// Your manually inform TypeScript what the type of an array member returned from customZip looks like
const people = [
...customZip<PersonTypes[]>([{name: 'apl', value: 'apple', gender: true},
{name: 'gal', value: 'google', gender: false},])
];