类型“未知”不可分配给 Typescript 中的类型

问题描述 投票:0回答:2

请帮助我,下面是我的代码。我想摆脱错误

import { useLocation } from "react-router-dom";

interface userState {
  status: string;
  id: string;
}

export default function Details() {
  const location = useLocation();
  const user: userState = location.state;
  console.log(user.id);
}

reactjs typescript
2个回答
2
投票

仅当确实有必要时,您可以通过在打字稿中使用类型断言来避免该警告,如下所示。

const user = location.state as userState;

1
投票

覆盖

useLocation.state
的类型可能对将来的使用更有用。

import { Location, useLocation } from "react-router-dom";

interface userState {
  status: string;
  id: string;
}

interface UseLocation extends Location {
  state: userState;
}

// do not use *.d.ts for this declaration.
// just declare it in any *.ts file.
// this declaration is effective in other components as well.

declare module "react-router-dom" {
  export function useLocation(): UseLocation;
}

export function Details() {
  const location = useLocation();

  const user: userState = location.state;
  console.log(user.id);
}

© www.soinside.com 2019 - 2024. All rights reserved.