Soy nuevo en mecanografiado, aquí he estado agregando mecanografiado a mi proyecto, obteniendo este extraño error: No overload matches this call. Overload 1 of 2, '(...items: ConcatArray<never>[]): never[]', gave the following error. Argument of type '{ identifier: string; }' is not assignable to parameter of type 'ConcatArray<never>'. Type '{ identifier: string; }' is missing the following properties from type 'ConcatArray<never>': length, join, slice Overload 2 of 2, '(...items: ConcatArray<never>[]): never[]', gave the following error. Argument of type '{ identifier: string; }' is not assignable to parameter of type 'ConcatArray<never>'.ts(2769)
mi código donde me está dando eso (reducers.ts):
interface Update_AnalyserState { identifier: string; } const initialArticleState= { analysers: [], }; export function articleReducer( state = initialArticleState, action: articleReducerAction ) { switch (action.type) { case ActionType.UPDATE_ANALYSER: return { ...state, analysers: state.analysers .filter( (a: Update_AnalyserState) => a.identifier != action.payload.identifier ) .concat(action.payload), }; } }alguna ayuda/sugerencia con esto?
No es fácil depurar a partir de su ejemplo, pero creo que el problema es este
const initialSiteArticleState = { analysers: [], }; Sus analizadores son un tipo de matriz vacía, por lo que significa que never[] . Entonces, el resultado del filtro será never[] . Por lo tanto, deberá escribir correctamente ese initialSiteArticleState .
Algo como
const initialSiteArticleState:{analysers: Update_AnalyserState[]} = { analysers: [], }; Dale un tiro. Aquí también hay un patio de recreo en el que traté de reproducir su código. Si pasa el cursor sobre tmp , puede ver que es de tipo never[] .