From 67471638c3e561e0de034b3a3b4a92895e81997d Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Thu, 24 Mar 2022 11:53:09 -0500 Subject: [PATCH] Typescript: Start fixing strictFunctionTypes errors --- app/soapbox/reducers/accounts.ts | 9 +++++---- app/soapbox/reducers/statuses.ts | 8 ++++++-- tsconfig.json | 2 +- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/app/soapbox/reducers/accounts.ts b/app/soapbox/reducers/accounts.ts index cea4603af3..bb9458cf16 100644 --- a/app/soapbox/reducers/accounts.ts +++ b/app/soapbox/reducers/accounts.ts @@ -1,6 +1,7 @@ import { Map as ImmutableMap, List as ImmutableList, + OrderedSet as ImmutableOrderedSet, fromJS, } from 'immutable'; import { AnyAction } from 'redux'; @@ -82,8 +83,8 @@ const addTags = ( ): State => { return state.withMutations(state => { accountIds.forEach(id => { - state.updateIn([id, 'pleroma', 'tags'], ImmutableList(), (v: ImmutableList) => - v.toOrderedSet().union(tags).toList(), + state.updateIn([id, 'pleroma', 'tags'], ImmutableList(), v => + ImmutableOrderedSet(fromJS(v)).union(tags).toList(), ); }); }); @@ -96,8 +97,8 @@ const removeTags = ( ): State => { return state.withMutations(state => { accountIds.forEach(id => { - state.updateIn([id, 'pleroma', 'tags'], ImmutableList(), (v: ImmutableList) => - v.toOrderedSet().subtract(tags).toList(), + state.updateIn([id, 'pleroma', 'tags'], ImmutableList(), v => + ImmutableOrderedSet(fromJS(v)).subtract(tags).toList(), ); }); }); diff --git a/app/soapbox/reducers/statuses.ts b/app/soapbox/reducers/statuses.ts index 404094b959..c115a9089b 100644 --- a/app/soapbox/reducers/statuses.ts +++ b/app/soapbox/reducers/statuses.ts @@ -136,7 +136,9 @@ const deleteStatus = (state: State, id: string, references: Array) => { const importPendingStatus = (state: State, { in_reply_to_id }: APIEntity) => { if (in_reply_to_id) { - return state.updateIn([in_reply_to_id, 'replies_count'], 0, (count: number) => count + 1); + return state.updateIn([in_reply_to_id, 'replies_count'], 0, count => { + return typeof count === 'number' ? count + 1 : 0; + }); } else { return state; } @@ -144,7 +146,9 @@ const importPendingStatus = (state: State, { in_reply_to_id }: APIEntity) => { const deletePendingStatus = (state: State, { in_reply_to_id }: APIEntity) => { if (in_reply_to_id) { - return state.updateIn([in_reply_to_id, 'replies_count'], 0, (count: number) => Math.max(0, count - 1)); + return state.updateIn([in_reply_to_id, 'replies_count'], 0, count => { + return typeof count === 'number' ? Math.max(0, count - 1) : 0; + }); } else { return state; } diff --git a/tsconfig.json b/tsconfig.json index b961c4bcb3..8412a89974 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,7 +5,7 @@ "alwaysStrict": true, "strictNullChecks": false, "strictBindCallApply": true, - "strictFunctionTypes": false, + "strictFunctionTypes": true, "strictPropertyInitialization": false, "noImplicitAny": true, "noImplicitThis": true,