Typescript 如何将对象绑定键和与类型声明相结合?

Typescript 如何将对象绑定键和与类型声明相结合?,typescript,Typescript,是否有方法将对象绑定键和与类型声明相结合 现在我正在这样做 export const useSignOut = ({ authState, authToken, setAuthState, setAuthToken, }: { authState: AuthState; authToken: OAuthToken | null; setAuthState: React.Dispatch<React.SetStateAction<AuthState>&

是否有方法将对象绑定键和与类型声明相结合

现在我正在这样做

export const useSignOut = ({
  authState,
  authToken,
  setAuthState,
  setAuthToken,
}: {
  authState: AuthState;
  authToken: OAuthToken | null;
  setAuthState: React.Dispatch<React.SetStateAction<AuthState>>;
  setAuthToken: React.Dispatch<React.SetStateAction<OAuthToken | null>>;
}) => {
...
}
export const useSignOut=({
国家,
authToken,
setAuthState,
setAuthToken,
}: {
authState:authState;
authToken:OAuthToken | null;

setAuthState:React.Dispatch不要像这样分解参数,不

如果可以重用,您可以在其他地方定义类型

import { MyTypeHere } from './somewhere'
export const useSignOut = ({
  authState,
  authToken,
  setAuthState,
  setAuthToken,
}: MyTypeHere) => {
...
}
或者您可以完全避免破坏结构:

export const useSignOut = (options: {
  authState: AuthState;
  authToken: OAuthToken | null;
  setAuthState: React.Dispatch<React.SetStateAction<AuthState>>;
  setAuthToken: React.Dispatch<React.SetStateAction<OAuthToken | null>>;
}) => {
  console.log(options.authState)
}
export const useSignOut=(选项:{
authState:authState;
authToken:OAuthToken | null;
setAuthState:React.Dispatch;
setAuthToken:React.Dispatch;
}) => {
console.log(options.authState)
}

或者像现在这样做。我想这几乎是你所有的选择。

我不认为有任何方法可以避免完全复制属性声明,但是如果你有一个带有这些属性的对象类型,你可以使用它作为参数类型。