TS Improvements (#1676)
* Do not truncate errors, pretty output * Introduce helpers for sagas * Update yarn lock
This commit is contained in:
parent
d5013b8810
commit
b40c2a9508
|
@ -0,0 +1,22 @@
|
||||||
|
import { Effect } from 'redux-saga/effects';
|
||||||
|
|
||||||
|
type ExtPromise<T> = T extends Promise<infer U> ? U : T;
|
||||||
|
|
||||||
|
type ExtSaga<T> = T extends IterableIterator<infer U> ? Exclude<U, Effect | Effect[]> : T;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use this helper to unwrap return types from effects like Call / Apply
|
||||||
|
* In the case of calling a function that returns a promise, this helper will unwrap the
|
||||||
|
* promise and return the type inside it. In the case of calling another saga / generator,
|
||||||
|
* this helper will return the actual return value of the saga / generator, otherwise,
|
||||||
|
* it'll return the original type.
|
||||||
|
*
|
||||||
|
* NOTE 1: When using this to extract the type of a Saga, make sure to remove the `SagaIterator`
|
||||||
|
* return type of the saga if it contains one, since that masks the actual return type of the saga.
|
||||||
|
*
|
||||||
|
* NOTE 2: You will most likely need to use the `typeof` operator to use this helper.
|
||||||
|
* E.g type X = UnwrapEffects<typeof MyFunc/MySaga>
|
||||||
|
*/
|
||||||
|
export type UnwrapEffects<T> = T extends (...args: any[]) => any
|
||||||
|
? ExtSaga<ReturnType<T>>
|
||||||
|
: ExtPromise<T>;
|
|
@ -18,6 +18,8 @@
|
||||||
"noEmitOnError": false,
|
"noEmitOnError": false,
|
||||||
"noUnusedLocals": true,
|
"noUnusedLocals": true,
|
||||||
"noUnusedParameters": true,
|
"noUnusedParameters": true,
|
||||||
|
"pretty": true,
|
||||||
|
"noErrorTruncation": true,
|
||||||
"noImplicitAny": true
|
"noImplicitAny": true
|
||||||
},
|
},
|
||||||
"include": [
|
"include": [
|
||||||
|
|
Loading…
Reference in New Issue