Функция как параметр - PullRequest
       0

Функция как параметр

0 голосов
/ 22 апреля 2020

Эта функция называется:

    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: (group: string[]) => string[] | undefined = (_x) =>
                    undefined
            ): number {

и это вызывающая сторона:

    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
            );

, и это еще одна вызывающая сторона без параметра fixCountryGroup:

    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 не определен?
С

    if (fixCountryGroup !== undefined) {
        groups = fixCountryGroup(groups)!;
       }

       if (typeof fixCountryGroup !== undefined) {
        groups = fixCountryGroup(groups)!;
       }

значение if всегда true: fixCountryGroup: undefined - Тип: функция
Тип "функция"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...