我有一个将道具分解为的组件:
<SupportComment {...props.supportComments} />
具有以下几种类型:
export type UserReview = {
....
supportComments: SupportComment[];
....
};
export type SupportComment = {
comment_text: string;
department: string;
name: string;
submitted_at: number;
};
和我的组件:
type Props = SupportComment;
const SupportComment: React.SFC<Props> = ({ comment_text: commentText, department }) => (
但是我似乎不断收到某种错误:
Type '{ [n: number]: SupportComment; length: number; toString(): string; toLocaleString(): string; pop(): SupportComment; push(...items: SupportComment[]): number; concat(...items: ConcatArray<SupportComment>[]): SupportComment[]; concat(...items: (SupportComment | ConcatArray<...>)[]): SupportComment[]; ... 26 more ...; ...' is not assignable to type 'SupportComment'.
Property 'comment_text' is missing in type '{ [n: number]: SupportComment; length: number; toString(): string; toLocaleString(): string; pop(): SupportComment; push(...items: SupportComment[]): number; concat(...items: ConcatArray<SupportComment>[]): SupportComment[]; concat(...items: (SupportComment | ConcatArray<...>)[]): SupportComment[]; ... 26 more ...; ...'.
我已经尝试将道具类型更改为这样:
type Props = SupportComment[];
但这给了我另一个错误:
Type 'SupportComment[] & { children?: ReactNode; }' has no property 'comment_text' and no string index signature.
type Props = SupportComment[] & SupportComment;
但这似乎使我回到第一个错误。
我不确定如何解决此问题,因为该值是一个由1个对象组成的数组,我用.reduce
将该对象作为对象返回:
supportComments: data.supportComments.reduce((prev: SupportComment, next: SupportComment) => next, {}),
我在哪里错了?