Solo quiero escribir una función simple que convierta una matriz con 2 valores [7, 9] en un objeto con teclas x e y como: { x: 7, y: 9 }
interface coordinates { x: number; y: number; } function getAnObjectOfnum(arr: number[]): coordinates; function getAnObjectOfnum(arg1: unknown, arg2?: unknown): coordinates { let coord: coordinates = { x: 0, y: 0, }; if (Array.isArray(arg1)) { const converted = arg1.reduce((a, v, i) => ({ ...a, [i]: v }), {}); } return coord; } console.log(getAnObjectOfnum([7, 9]));Ese es mi esfuerzo para encontrar la solución.
Solo quiero escribir una función simple que convierta una matriz con 2 valores
[7, 9]en un objeto con teclas x e y como:{ x: 7, y: 9 }
A menos que haya requisitos que no esté describiendo en la pregunta, puede ser mucho más simple que eso:
function getAnObjectOfnum(arr: [number, number]): coordinates { return {x: arr[0], y: arr[1]}; } Tenga en cuenta que he usado [number, number] en lugar de number[] , ya que necesitamos exactamente dos valores. Este es un tipo de tupla .
Eso se puede hacer más conciso usando la desestructuración de parámetros, pero posiblemente a expensas de la claridad (o posiblemente no; si está familiarizado con la desestructuración, es más claro de lo que hubiera pensado):
function getAnObjectOfnum([x, y]: [number, number]): coordinates { return {x, y}; }