で関数構成を使用して定義されたES6スタイルの関数があり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);
ご覧のとおり、JSDocの説明を追加してみました。しかし、どこかで使用すると、私のエディターであるVSCodeはそのパラメーターを提案しません。JSDocでこれらの種類の関数をどのように宣言しますか?また、この関数のパラメーターをIntellisenseで使用するにはどうすればよいですか?
関連:JSDocを使用して関数から返された関数を文書化する方法と未解決の問題#1286 " カリー化関数のサポート」
—
Bergi