Type Alias: PostDeferredCallbackArgs<TUrl, TData, RPA>
PostDeferredCallbackArgs<
TUrl,TData,RPA> = [TUrl,TData] extends [RPA[0],undefined] ? [PostArgs[1],PostArgs[2]] : [TUrl,TData] extends [undefined,RPA[1]] ? [PostArgs[0],PostArgs[2]] : [TUrl,TData] extends [RPA[0],RPA[1]] ? [PostArgs[2]] :PostArgs
Defined in: packages/fetch/src/types.ts:358
Type Parameters
TUrl
TUrl = undefined
TData
TData = undefined
RPA
RPA extends unknown[] = Required<PostArgs>
Example
typescript
// test with types
type T1 = PostDeferredCallbackArgs<string | URL, undefined> // expected: [data, options]
type T2 = PostDeferredCallbackArgs<undefined, string> // expected: [url, options]
type T3 = PostDeferredCallbackArgs // expected: [url, data, options]
type T4 = PostDeferredCallbackArgs<string, string> // expected: [options]
const data = { name: 'test' }
const url = 'https://domain.com'
// test with postDeferred()
const f1 = postDeferred({}, 'https://domain.com')
// expected: [data, options]
f1({data: 1}).then(console.log, console.warn)
const f2 = postDeferred({}, undefined, 'dome data')
// expected: [url, options]
f2('https').then(console.log, console.warn)
const f3 = postDeferred({})
// expected: [url, data, options]
f3('https://domain.com').then(console.log, console.warn)
const f4 = postDeferred({}, 'url', 'data')
// expected: [options]
f4().then(console.log, console.warn)