将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;
};
使用Typescript,您不需要JSDoc类型。 TS类型已经是规范,您不必将它们与JSDoc类型重复。您的函数已经输入,无需通过注释来指示这些类型。