Вывод типа для реквизита React Component - PullRequest
2 голосов
/ 23 апреля 2020
export interface InfiniteScrollProps<TItem> {
  children?: (
    item: TItem,
    index: number,
    ref: React.MutableRefObject<any>,
  ) => React.ReactNode;
  items?: TItem[];
}

declare class InfiniteScroll<TItem> extends React.Component<
  InfiniteScrollProps<TItem>
> {}

Дайте приведенные выше определения типов, я ожидал, что тип item в подпорке для детей будет выведен на основании типа items подпорки. Но по умолчанию он равен unknown, хотя в прошлом вывод типа, подобный этому, работал. Тип allItems выводится правильно. Что здесь может происходить?

export const allItems = Array(2000)
  .fill(0)
  .map((_, i) => ({ label: `item ${i + 1}`, value: Math.random() }));

<InfiniteScroll items={allItems} {...props}>
  {(item, _, ref) => (
    <Box
      ref={ref}
      key={item}
      pad="medium"
      border={{ side: 'bottom' }}
      align="center"
    >
      <Text>{item}</Text>
    </Box>
  )}
</InfiniteScroll>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...