Improve type checks

This commit is contained in:
riggraz
2019-09-26 16:03:41 +02:00
parent 322c8e51cf
commit 678d2eaacf
16 changed files with 67 additions and 26 deletions

View File

@@ -5,7 +5,7 @@ import { State } from '../reducers/rootReducer';
export const CHANGE_POST_BOARD_SUCCESS = 'CHANGE_POST_BOARD_SUCCESS';
export interface ChangePostBoardSuccessAction {
type: typeof CHANGE_POST_BOARD_SUCCESS;
newBoardId;
newBoardId: number;
}
const changePostBoardSuccess = (newBoardId: number): ChangePostBoardSuccessAction => ({

View File

@@ -5,7 +5,7 @@ import { State } from '../reducers/rootReducer';
export const CHANGE_POST_STATUS_SUCCESS = 'CHANGE_POST_STATUS_SUCCESS';
export interface ChangePostStatusSuccessAction {
type: typeof CHANGE_POST_STATUS_SUCCESS;
newPostStatusId;
newPostStatusId: number;
}
const changePostStatusSuccess = (newPostStatusId: number): ChangePostStatusSuccessAction => ({

View File

@@ -11,12 +11,12 @@ interface SetCommentReplyBodyAction {
body: string;
}
export const toggleCommentReply = (commentId): ToggleCommentReplyAction => ({
export const toggleCommentReply = (commentId: number): ToggleCommentReplyAction => ({
type: TOGGLE_COMMENT_REPLY,
commentId,
});
export const setCommentReplyBody = (commentId, body): SetCommentReplyBodyAction => ({
export const setCommentReplyBody = (commentId: number, body: string): SetCommentReplyBodyAction => ({
type: SET_COMMENT_REPLY_BODY,
commentId,
body,

View File

@@ -1,7 +1,7 @@
import ICommentJSON from '../interfaces/json/IComment';
export const COMMENT_REQUEST_SUCCESS = 'COMMENT_REQUEST_SUCCESS';
interface CommentRequestSuccessAction {
export interface CommentRequestSuccessAction {
type: typeof COMMENT_REQUEST_SUCCESS;
comment: ICommentJSON;
}

View File

@@ -28,7 +28,7 @@ export type CommentSubmitActionTypes =
CommentSubmitSuccessAction |
CommentSubmitFailureAction;
const commentSubmitStart = (parentId): CommentSubmitStartAction => ({
const commentSubmitStart = (parentId: number): CommentSubmitStartAction => ({
type: COMMENT_SUBMIT_START,
parentId,
});
@@ -40,17 +40,17 @@ const commentSubmitSuccess = (
comment: commentJSON,
});
const commentSubmitFailure = (parentId, error): CommentSubmitFailureAction => ({
const commentSubmitFailure = (parentId: number, error: string): CommentSubmitFailureAction => ({
type: COMMENT_SUBMIT_FAILURE,
parentId,
error,
});
export const submitComment = (
postId,
body,
parentId,
authenticityToken,
postId: number,
body: string,
parentId: number,
authenticityToken: string,
): ThunkAction<void, State, null, Action<string>> => async (dispatch) => {
dispatch(commentSubmitStart(parentId));

View File

@@ -6,6 +6,9 @@ import createStoreHelper from '../../helpers/createStore';
import IBoard from '../../interfaces/IBoard';
import { Store } from 'redux';
import { State } from '../../reducers/rootReducer';
interface Props {
board: IBoard;
isLoggedIn: boolean;
@@ -13,7 +16,7 @@ interface Props {
}
class BoardRoot extends React.Component<Props> {
store: any;
store: Store<State, any>;
constructor(props: Props) {
super(props);

View File

@@ -8,6 +8,9 @@ import Post from '../../containers/Post';
import IBoard from '../../interfaces/IBoard';
import IPostStatus from '../../interfaces/IPostStatus';
import { Store } from 'redux';
import { State } from '../../reducers/rootReducer';
interface Props {
postId: number;
boards: Array<IBoard>;
@@ -18,7 +21,7 @@ interface Props {
}
class PostRoot extends React.Component<Props> {
store: any;
store: Store<State, any>;
constructor(props: Props) {
super(props);

View File

@@ -16,7 +16,7 @@ const mapStateToProps = (state: State) => ({
postStatuses: state.postStatuses,
});
const mapDispatchToProps = (dispatch) => ({
const mapDispatchToProps = (dispatch: any) => ({
requestPosts(boardId: number, page: number = 1, searchQuery: string = '', postStatusId: number = null) {
dispatch(requestPosts(boardId, page, searchQuery, postStatusId));
},

View File

@@ -1,4 +1,5 @@
import {
CommentRequestSuccessAction,
COMMENT_REQUEST_SUCCESS,
} from '../actions/requestComment';
@@ -14,7 +15,7 @@ const initialState: IComment = {
const commentReducer = (
state = initialState,
action,
action: CommentRequestSuccessAction,
): IComment => {
switch (action.type) {
case COMMENT_REQUEST_SUCCESS:

View File

@@ -1,13 +1,16 @@
import {
CommentRequestSuccessAction,
COMMENT_REQUEST_SUCCESS,
} from '../actions/requestComment';
import {
HandleCommentRepliesType,
TOGGLE_COMMENT_REPLY,
SET_COMMENT_REPLY_BODY,
} from '../actions/handleCommentReplies';
import {
CommentSubmitActionTypes,
COMMENT_SUBMIT_START,
COMMENT_SUBMIT_SUCCESS,
COMMENT_SUBMIT_FAILURE,
@@ -31,7 +34,10 @@ const initialState: CommentRepliesState = {
const commentRepliesReducer = (
state = initialState,
action,
action:
CommentRequestSuccessAction |
HandleCommentRepliesType |
CommentSubmitActionTypes,
) => {
switch (action.type) {
case COMMENT_REQUEST_SUCCESS:

View File

@@ -1,4 +1,5 @@
import {
CommentsRequestActionTypes,
COMMENTS_REQUEST_START,
COMMENTS_REQUEST_SUCCESS,
COMMENTS_REQUEST_FAILURE,
@@ -7,11 +8,13 @@ import {
import { commentRequestSuccess } from '../actions/requestComment';
import {
HandleCommentRepliesType,
TOGGLE_COMMENT_REPLY,
SET_COMMENT_REPLY_BODY,
} from '../actions/handleCommentReplies';
import {
CommentSubmitActionTypes,
COMMENT_SUBMIT_START,
COMMENT_SUBMIT_SUCCESS,
COMMENT_SUBMIT_FAILURE,
@@ -40,7 +43,10 @@ const initialState: CommentsState = {
const commentsReducer = (
state = initialState,
action,
action:
CommentsRequestActionTypes |
HandleCommentRepliesType |
CommentSubmitActionTypes
): CommentsState => {
switch (action.type) {
case COMMENTS_REQUEST_START:
@@ -55,7 +61,7 @@ const commentsReducer = (
items: action.comments.map(
(comment: ICommentJSON) => commentReducer(undefined, commentRequestSuccess(comment))
),
replies: [commentRepliesReducer(undefined, {type: 'COMMENT_REQUEST_SUCCESS', comment: { id: -1 } }),
replies: [commentRepliesReducer(undefined, {type: 'COMMENT_REQUEST_SUCCESS', comment: { id: -1 } as ICommentJSON }),
...action.comments.map(
(comment: ICommentJSON) => commentRepliesReducer(undefined, commentRequestSuccess(comment))
)],

View File

@@ -50,10 +50,10 @@ interface CurrentPostState {
}
const initialState: CurrentPostState = {
item: postReducer(undefined, {}),
item: postReducer(undefined, {} as PostRequestActionTypes),
isLoading: false,
error: '',
comments: commentsReducer(undefined, {}),
comments: commentsReducer(undefined, {} as CommentsRequestActionTypes),
};
const currentPostReducer = (

View File

@@ -1,12 +1,15 @@
import {
PostRequestActionTypes,
POST_REQUEST_SUCCESS,
} from '../actions/requestPost';
import {
ChangePostBoardSuccessAction,
CHANGE_POST_BOARD_SUCCESS,
} from '../actions/changePostBoard';
import {
ChangePostStatusSuccessAction,
CHANGE_POST_STATUS_SUCCESS,
} from '../actions/changePostStatus';
@@ -25,7 +28,10 @@ const initialState: IPost = {
const postReducer = (
state = initialState,
action,
action:
PostRequestActionTypes |
ChangePostBoardSuccessAction |
ChangePostStatusSuccessAction,
): IPost => {
switch (action.type) {
case POST_REQUEST_SUCCESS:

View File

@@ -37,10 +37,7 @@ const initialState: PostsState = {
haveMore: true,
areLoading: false,
error: '',
filters: { // improve
searchQuery: '',
postStatusId: null,
},
filters: filtersReducer(undefined, {} as ChangeFiltersActionTypes),
};
const postsReducer = (