Как использовать JSDoc с универсальной машинописью? - PullRequest
0 голосов
/ 28 сентября 2019

Каков наилучший способ использовать JSDoc для универсальных функций машинописи.Ниже я попробовал кое-что, но я думаю, что есть лучший способ сделать это, потому что есть информация, гласящая: JSDoc types may be moved to TypeScript types.ts(80004)

Я нажал «Быстрое исправление», но это испортилосьфункция.

/**
 * @description  execute in parallel promises by chunks
 * @type <ReturnType> : the type of data to be returned
 * @param arrayPromises : the array of promises to execute
 * @param chunks : the value of chunks
 * @returns : an array of returnType
 */
const runPromisesInParallelbyChunks = async <ReturnType>(
    arrayPromises: Array<() => Promise<ReturnType>>,
    chunks: number
): Promise<ReturnType[]> => {
    const result: ReturnType[] = [];
    let resu: ReturnType[] = [];
    let cnt: number = 0;
    const chain = async (
        shrinkArray: Array<() => Promise<ReturnType>>
    ): Promise<ReturnType> => {
        if (!shrinkArray.length) {
            return new Promise<ReturnType>(resolve => resolve());
        }
        // console.log(shrinkArray.length);
        const i: number = cnt++;
        const res: ReturnType = await shrinkArray.shift()!();
        await delayExecution(100);
        // SAVE RESULT OF THE EXECUTION OF THE FUNCTION
        result[i] = res;
        return chain(shrinkArray);
    };
    const arrChains: Array<Promise<ReturnType>> = [];
    while (chunks-- > 0 && arrayPromises.length > 0) {
        arrChains.push(chain(arrayPromises));
    }
    // RESULT IS AN ARRAY OF THE RESULT OF EACH PROMISE
    resu = await Promise.all(arrChains).then(() => result);

    return resu;
};

1 Ответ

0 голосов
/ 29 сентября 2019

С Typescript вам не нужны типы JSDoc.Типы TS уже являются спецификациями, вам не нужно дублировать их с типами JSDoc.Ваша функция уже набрана, нет необходимости указывать эти типы в комментариях.

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