Возможно, трудно обновлять документацию с изменениями кода. Однако хорошая документация необходима для поддержания баз кода и обеспечения эффективной работы разработчиков с кодом. Copilot Chat может помочь в обновлении существующей документации по коду.
Пример сценария
Представьте сценарий, в котором у вас есть функция TypeScript, которая извлекает продукты по имени категории, но документация устарела.
/**
* Retrieves all products belonging to a specific category.
*
* @param categoryId - The unique identifier of the product category
* @returns Promise that resolves to an array of Product objects
*
* @example
* const products = await getByCategoryName(5);
* // Returns: [{id: 1, name: "Product 1", categoryId: 5}, ...]
*
* @throws {PrismaClientKnownRequestError} If database query fails
* @see {@link https://www.prisma.io/docs/reference/api-reference/prisma-client-reference#findmany}
*/
async getByCategoryName(categoryId: number, page = 1, pageSize = 10): Promise<Products[]> {
return await prisma.products.findMany({
where: { categoryId },
skip: (page - 1) * pageSize,
take: pageSize,
include: {
reviews: {
orderBy: { date: 'desc' },
take: 5,
},
},
});
}
Пример запроса
Вы можете попросить Copilot Chat обновить документацию в соответствии с текущим кодом.
Update the existing documentation for the getByCategoryName function to reflect the current implementation.
Пример отклика
Note
Следующий ответ является примером. Ответы Copilot Chat являются недетерминированными, поэтому вы можете получить другой ответ, показанный здесь.
Copilot объясняет, что он создаст обновленную документацию для getByCategoryName
функции. Затем она предоставляет обновленную документацию, которая теперь включает в себя page
и pageSize
параметры, а также PrismaClientKnownRequestError
ошибку, которую можно выбросить.
Например:
/**
* Retrieves all products belonging to a specific category with pagination and recent reviews.
*
* @param categoryId - The unique identifier of the product category
* @param page - The page number for pagination (default: 1)
* @param pageSize - Number of products per page (default: 10)
* @returns Promise that resolves to an array of Product objects with their 5 most recent reviews
*
* @example
* const products = await getByCategoryName(5, 2, 20);
* // Returns: [{id: 1, name: "Product 1", categoryId: 5, reviews: [...5 recent reviews]}, ...]
*
* @throws {PrismaClientKnownRequestError} If database query fails
* @see {@link https://www.prisma.io/docs/reference/api-reference/prisma-client-reference#findmany}
*/