axios 使用泛型创建一个其属性位于接口/类型中的类型

nx7onnlm  于 2022-11-05  发布在  iOS
关注(0)|答案(1)|浏览(119)

我正在基于AxiosErrorAPI响应创建一个类型。

errors: {
   Property: [string]
}

Example:

export interface User {
  username: string;
  password: string;
}

Expected API output

errors: {
   username: [string]
   password: [string]
}

我目前正在写的类型(如下),但我收到了以下错误,将需要建议,我是否正确实现和解决方案。

export type ClassError<T> = {
 [keys in T]: Array<string>; //Type 'T' is not assignable to type 'string | number | symbol'
}

export type PayloadError<T> = {
 errors: string | ClassError<T>;
}
b4wnujal

b4wnujal1#

你只需要寻找keyof类型运算符,它给出了一个类型的已知键的并集:

export type ClassError<T> = {
    [K in keyof T]: Array<string>;
}

type UserErrors = ClassError<User>;
/* type UserErrors = {
    username: string[];
    password: string[];
} */

Playground代码链接

相关问题