¿Cómo se establece el tipo de parámetro de una función para aceptar una clave de una de las propiedades de un tipo? ¿Es esto posible?
type A = { ['prop1']: string; ['props2']: boolean; } // arg would be either 'prop1' or 'prop2' const example = (arg: property in A ) => {}Mi suposición es que esto ni siquiera es posible. Si es así, ¿hay alguna manera de evitar esto?
¿Hay alguna manera de declarar un tipo similar a cómo puede declarar un objeto con una enum ? Obviamente, este es un objeto a continuación, pero ¿podría hacer algo similar con un tipo?
Ejemplo:
enum Enum { bold = 'bold', italic = 'italic', } const objWithEnumProperties: {[key in Enum]: any} = { [Enum.bold]: '', [Enum.italic]: '' }¿Cómo establecer un tipo de parámetro de funciones para que sea una CLAVE de propiedad de UNA de las propiedades de un tipo? ¿Es esto posible?
Sí, usando la clave de keyof :
type Foo = { bar: string; baz: boolean; } // arg is 'bar' | 'baz' const fn = (arg: keyof Foo) => {}¿Hay alguna manera de declarar un tipo similar a cómo puede declarar un objeto con una enumeración?
Probablemente desee una aserción de objeto const o una interface :
// Usable at runtime const Foo = { bar: 'bar', baz: 'baz' } as const; // Only for typing interface Foo { bar: string; baz: boolean; }