В Typescript мне нужно передать функцию другой функции в качестве параметра по умолчанию; в вызывающей программе я написал:
const fixCountryGroup=(
countryGroups: WithId<country_groups.CountryGroup<"ISO3166A3">>[]
): WithId<country_groups.CountryGroup<"ISO3166A3">>[] {
const excludedCountries: string[] = ["TOTAL", "EU28_FOR", "NEU28_FOR"];
return countryGroups.filter((record) => {
return !excludedCountries.includes(record.ISO3166A3);
});
}
и вызов функции:
c += this.buildAggregation(
self.tempRecordsSingleOrigin,
self.dstCollection,
false,
{
age: "$extras.age",
sex: "$extras.sex",
c_citizen: "$extras.c_citizen"
},
"$time_dim",
"$time_dim_value",
idExtra,
fixCountryGroup
);
Теперь в вызываемой функции у меня есть:
protected buildAggregation(
collection: Collection<DDHRecordSingleOrigin>,
aggCollection: Collection<DDHRecord>,
reverse: boolean = false,
additionalGroupingIdFields: { [k: string]: string } = {},
timeDimField: string = "$time_dim",
timeDimValueField = "$time_dim_value",
extrasProvider: (
record: DDHAggregationRecord
) => { [key: string]: any } = (_d) => {
return {};
},
fixCountryGroup: (
countryGroups: WithId<country_groups.CountryGroup<"ISO3166A3">>[]
) => { countryGroups: WithId<country_groups.CountryGroup<"ISO3166A3">>[] | undefined} = (x){return undefined}
Ошибка параметра fixCountryGroup:
(parameter) fixCountryGroup: (countryGroups: WithId<country_groups.CountryGroup<"ISO3166A3">>[]) => {
countryGroups: WithId<country_groups.CountryGroup<"ISO3166A3">>[] | undefined;
}
Type '(x: WithId<CountryGroup<"ISO3166A3">>[]) => undefined' is not assignable to type '(countryGroups: WithId<CountryGroup<"ISO3166A3">>[]) => { countryGroups: WithId<CountryGroup<"ISO3166A3">>[] | undefined; }'.
Type 'undefined' is not assignable to type '{ countryGroups: WithId<CountryGroup<"ISO3166A3">>[] | undefined; }'.ts(2322)
Как мне записать параметр fixCountryGroup в вызываемой функции?!?