TypeScript - 属性 在类型上不存在(但它存在)?
TypeScript - property does not exist on type (but it exists)?
我有一种包含一些用户数据的用户。还有一种 UserResponse,基本上是 users: User[]
。到目前为止一切都很容易。问题是我必须将 UsersResponse 作为道具传递,然后我无法访问 .users
。这是为什么?
部分代码:
export type User = {
login: string;
password: string;
}
export type UsersResponse = {
users: User[];
}
export interface MyProps {
props: UsersResponse;
}
const App = (props: MyProps): any => {
console.log('props: ', props.users);
return (
<>foo</>
);
}
Console.log 失败,因为 Property 'users' does not exist on type 'MyProps'.
但这对我来说毫无意义,因为 MyProps returns UsersResponse 并且它有 users
。我在这里错过了什么?我该如何解决?我知道这很明显,或者我打错了字,但实际上,我找不到它。注意我必须使用 props: type
因为这种格式是由我使用的框架强制的。
您在 MyProps
界面中设置了错误的密钥。
而且您也不需要声明 UsersResponse
。
试试这个:
export type User = {
login: string;
password: string;
}
export interface MyProps {
users: User[];
}
const App = (props: MyProps): any => {
console.log('props: ', props.users);
return (
<>foo</>
);
}
我有一种包含一些用户数据的用户。还有一种 UserResponse,基本上是 users: User[]
。到目前为止一切都很容易。问题是我必须将 UsersResponse 作为道具传递,然后我无法访问 .users
。这是为什么?
部分代码:
export type User = {
login: string;
password: string;
}
export type UsersResponse = {
users: User[];
}
export interface MyProps {
props: UsersResponse;
}
const App = (props: MyProps): any => {
console.log('props: ', props.users);
return (
<>foo</>
);
}
Console.log 失败,因为 Property 'users' does not exist on type 'MyProps'.
但这对我来说毫无意义,因为 MyProps returns UsersResponse 并且它有 users
。我在这里错过了什么?我该如何解决?我知道这很明显,或者我打错了字,但实际上,我找不到它。注意我必须使用 props: type
因为这种格式是由我使用的框架强制的。
您在 MyProps
界面中设置了错误的密钥。
而且您也不需要声明 UsersResponse
。
试试这个:
export type User = {
login: string;
password: string;
}
export interface MyProps {
users: User[];
}
const App = (props: MyProps): any => {
console.log('props: ', props.users);
return (
<>foo</>
);
}