快速问题-为什么Typescript仍然认为它将是未定义的?
在我的应用程序中添加以下代码后,在行draft.splice(result.destination.index, 0, draggedItem);
上出现Typescript错误,提示result.destination
对象可能未定义。键入以下内容时,部分正确:DragUpdate.destination?: DraggableLocation | undefined
。但是,我在此函数的开头进行了检查,因此在给定的行将永远不会是undefined
。
const onDragEnd = useCallback((result: DropResult) => {
// do nothing if no destination
if (!result.destination) return;
setState((prevState: IOrderCard[]) =>
produce(prevState, draft => {
const draggedItem = draft[result.source.index];
draft.splice(result.source.index, 1);
draft.splice(result.destination.index, 0, draggedItem);
return draft;
})
);
}, []);
这是带有钩子的React应用,也使用immer
和react-beautiful-dnd
。
答案 0 :(得分:0)
我无法评论Alexsey L.所说的内容,但更快速的解决方法是使用!当您知道将要定义的内容时。