I am not sure I understand. In the `MenuSelect` component you can declare `export let users: Array<User>;` and then pass into `users` anything that has the `User` interface.
I assume you don’t like invocation? That’s not the point here. In svelte you can’t* define type variable that’s bound to the same type in whole component. I can’t enforce that properties `items` is `T[]` and `selectedItem` is `T`.
I'm writing about <MenuSelect<User users={..} /> and not about Svelte. I don't know anything about Svelte except what I just learned in the article. I just don't like the syntax of <MenuSelect<User> /> and favour <MenuSelect /> instead, because Typescript will inherit it's generic type from users={...}
My only complaint is that the Typescript support isn't quite perfect yet, but it's already very functional.