diff --git a/.eslintrc.js b/.eslintrc.js index 60635d29..136b0ca7 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -25,6 +25,7 @@ module.exports = { sourceType: "module", }, rules: { + "@typescript-eslint/no-non-null-assertion": "off", "@typescript-eslint/no-unused-vars": [ 1, { argsIgnorePattern: "^_", varsIgnorePattern: "^_" }, diff --git a/src/components/Provider.tsx b/src/components/Provider.tsx index 87613f01..a7330de9 100644 --- a/src/components/Provider.tsx +++ b/src/components/Provider.tsx @@ -50,7 +50,7 @@ export function Provider({ React.useEffect( function enhanceAndIntialise() { const enhanced = root.enhancer?.(observable) ?? observable; - setEnhanced?.(enhanced); + setEnhanced!(enhanced); enhanced.dispatch(createAction(ActionTypes.INIT as T)()); }, // eslint-disable-next-line react-hooks/exhaustive-deps diff --git a/src/hooks/useSelector.ts b/src/hooks/useSelector.ts index 81723ee4..872f492a 100644 --- a/src/hooks/useSelector.ts +++ b/src/hooks/useSelector.ts @@ -2,7 +2,7 @@ import * as React from "react"; import { GlobalContext } from ".."; export function useSelector( - selector: Nullable>, + selector?: Selector, Context?: Context, ): Nullable { const { state } = React.useContext(Context ?? GlobalContext); diff --git a/src/utils/applyMiddleware.ts b/src/utils/applyMiddleware.ts index 202be98d..ac0dec91 100644 --- a/src/utils/applyMiddleware.ts +++ b/src/utils/applyMiddleware.ts @@ -5,8 +5,7 @@ export function applyMiddleware( ...middlewares: Middleware[] ): ContextEnhance { return function enhancer(context: ContextValue) { - // eslint-disable-next-line @typescript-eslint/no-unused-vars - function dispatchStub(...args: unknown[]): never { + function dispatchStub(): never { throw new Error( "Dispatching while constructing your middleware is not allowed. " + "Other middleware would not be applied to this dispatch.", diff --git a/tests/createContext.test.tsx b/tests/createContext.test.tsx index e67a7f65..7fb90743 100644 --- a/tests/createContext.test.tsx +++ b/tests/createContext.test.tsx @@ -57,7 +57,7 @@ describe("createContext", () => { ); const { result } = renderHook(() => React.useContext(Context)); const { enhancer, ...value } = result.current; - expect(enhancer?.(value)).toMatchObject(value); + expect(enhancer!(value)).toMatchObject(value); }); it("has expected default context value", () => { diff --git a/tests/hooks.test.ts b/tests/hooks.test.ts index 3377821e..f37141ae 100644 --- a/tests/hooks.test.ts +++ b/tests/hooks.test.ts @@ -24,7 +24,6 @@ describe("useAccessor", () => { const [getter, setter] = result.current; expect(getter()).toBe("initial value"); expect(setter).toBeUndefined(); - setter?.("some value"); expect(getter()).toBe("initial value"); rerender("other value"); expect(getter()).toBe("other value"); diff --git a/typings/observable.d.ts b/typings/observable.d.ts index 273daba1..cb2feafb 100644 --- a/typings/observable.d.ts +++ b/typings/observable.d.ts @@ -6,8 +6,7 @@ interface SymbolConstructor { // eslint-disable-next-line @typescript-eslint/no-unused-vars interface Observable { - // eslint-disable-next-line @typescript-eslint/no-misused-new - constructor(subscriber: SubscriberFunction); + new (subscriber: SubscriberFunction); // Subscribes to the sequence with an observer subscribe(observer: Observer): Subscription;