I have two cases in which I use `setState` to set an array of objects. Looks like this:

```
  const [friendList, setFriendList] = useState<any>();

  const _onCompleted = (data: any) => {
    let DATA = data.me.friends.map(
      (item: {
          firstName: string;
          id: number;
          rating: number;
          vehicles: Array<Vehicle>;
          friends: Array<User>;

      }) => ({
        id: item.id,
        imageUrl: defaultUrl,
        name: item.firstName,
        rating: item.rating,
        vehicles: [],
        numberOfFriends: item.friends.length,
      }),
    );
    setFriendList(DATA);
  };

```

In case on onComplete, data looks like this:

```
DATA
Array (3)
0 {id: 1, imageUrl: "https://", name: "Bob", rating: 1, vehicles: [], …}
1 {id: 3, imageUrl: "https://", name: "Rhena", rating: 3, vehicles: [], …}
2 {id: 4, imageUrl: "https://", name: "Jack", rating: 4, vehicles: [], …}

```

Currently, I am using `<any>`, which works. However, I do not want to use `any`. I tried creating custom types:

```
type Friend = {
  id: number,
  imageUrl: string,
  name: string,
  rating?: number,
  //vehicles: item.vehicles,
  vehicles?: any,
  numberOfFriends?: number,
};

type FriendList = {
  friendList: Array<Friend>;
};

```

but when I use it like this `useState<FriendList>();`, I get an error on `setFriendList(DATA);` from `onError` that `Argument of type '{ id: string; imageUrl: string; name: string; }[]' is not assignable to parameter of type 'SetStateAction<FriendList | undefined>'.`

Why is this so? The remaining fields in my `Friend` type are option so why do I get this error?

I also tried using `useState<Array<Friend>>();` and `useState([])`but I get the same error.