Tôi có một hàm kiểu ES6 được xác định bằng cách sử dụng thành phần hàm với asyncPipe
.
import { getItemAsync } from 'expo-secure-store';
const asyncPipe = (...fns) => x => fns.reduce(async (y, f) => f(await y), x);
const getToken = () => getItemAsync('token');
const liftedGetToken = async ({ ...rest }) => ({
token: await getToken(),
...rest,
});
const liftedFetch = ({ body, route, token, method = 'GET' } = {}) =>
fetch(route, {
...(body && { body: JSON.stringify(body) }),
headers: {
'Content-Type': 'application/json',
...(token && { Authorization: `Bearer ${token}` }),
},
method,
});
const json = res => res.json();
/**
* @method
* @param {Object} fetchSettings the settings for the fetch request
* @param {Object} fetchSettings.body the body of the request
* @param {string} fetchSettings.route the URL of the request
* @param {string} fetchSettings.method the method of the request
* @param {string} fetchSettings.token should only be used for testing and unauthenticated requests
*/
const request = asyncPipe(liftedGetToken, liftedFetch, json);
Như bạn thấy tôi đã thử thêm một mô tả JSDoc vào nó. Nhưng khi tôi sử dụng nó ở bất cứ đâu, trình soạn thảo của tôi, VSCode, không đề xuất các tham số của nó. Làm thế nào để bạn khai báo các loại chức năng này với JSDoc? Và làm cách nào để có được thông số cho chức năng này hoạt động với Intellisense?