Type Alias: PostDeferredCbArgs<TUrl, TData, Options, CbArgsReq>
PostDeferredCbArgs<
TUrl,TData,Options,CbArgsReq> = [TUrl,TData] extends [CbArgsReq[0],undefined] ? [PostArgs[1],PostArgs[2]] : [TUrl,TData] extends [undefined,CbArgsReq[1]] ? [PostArgs[0],PostArgs[2]] : [TUrl,TData] extends [CbArgsReq[0],CbArgsReq[1]] ? [PostArgs[2]] : [TUrl,TData,Options]
Defined in: packages/fetch/src/types.ts:424
Dynamic arguments for deferred post-like methods.
Type Parameters
TUrl
TUrl = undefined
TData
TData = undefined
Options
Options = undefined
CbArgsReq
CbArgsReq extends unknown[] = Required<PostArgs>
Example
typescript
import fetch, { type PostDeferredCbArgs } from '@superutils/fetch'
// test with types
type T1 = PostDeferredCbArgs<string | URL, undefined> // expected: [data, options]
type T2 = PostDeferredCbArgs<undefined, string> // expected: [url, options]
type T3 = PostDeferredCbArgs // expected: [url, data, options]
type T4 = PostDeferredCbArgs<string, string> // expected: [options]
const data = { name: 'test' }
const url = 'https://domain.com'
// test with fetch.post.deferred()
const f1 = fetch.post.deferred({}, 'https://domain.com')
// expected: [data, options]
f1({data: 1}).then(console.log, console.warn)
const f2 = fetch.post.deferred({}, undefined, 'dome data')
// expected: [url, options]
f2('https').then(console.log, console.warn)
const f3 = fetch.post.deferred({})
// expected: [url, data, options]
f3('https://domain.com').then(console.log, console.warn)
const f4 = fetch.post.deferred({}, 'url', 'data')
// expected: [options]
f4().then(console.log, console.warn)