Executando verificação de segurança...
1
Carregando publicação patrocinada...
1

Geralmente fazemos assim.

interface Props<T> {
  items: T;
}

function select<T>({ items }: Props<T>) {
  return {
    // ...
  };
}

const select2 = <T>({items}: Props<T>) => {
    return {
        // ...
      };
}


select<[{id: number}]>({items: [{id: 1}]})
select2<[{id: string}]>({items: [{id: '1'}]})


Sendo o select -> function select<[{ id: number; }]>({ items }: Props<[{ id: number; }]>): {}
Sendo o select2 -> const select2: <[{ id: string; }]>({ items }: Props<[{ id: string; }]>) => {}
1
1

Não sei se entendi sua pergunta, seria algo desse tipo?

const arrayOfNumbers: Array<Number> = [1, 2, 3, 4]
const arrayOfStrings: Array<String> = ['a', 'b', 'c', 'd']
const arrayOfBooleans: Array<Boolean> = [true, false]
1

Ola, estou tentando criar um componente funcional no react.
Quero tornar esse componente generico para reutilizar em outros
lugares da aplicação, no entento estou obtendo um erro: A propriedade 'name' não existe no tipo 'T'.ts(2339)

interface ItemProps<T> {
  itens: T[];
}
function select<T>({ itens }: ItemProps<T>) {
  return (
    <select name="select">
      {itens.map(item => {
        <option key={item.id} value={item.name}>{item.name</option>;
      })}
    </select>
  );
}

(parameter) item: T
A propriedade 'name' não existe no tipo 'T'.ts(2339)