Escrito el 25/07/2024

Typescript: Definir un tipo objeto

Para definir un objeto dónde las propiedades pueden tener cualquier nombre se puede hacer de esta forma:

En este caso cualquier objeto del tipo FunctionStore va a tener todas sus propiedades del tipo función.

type FunctionStore {
    [key: string]: Function
};

También se pueden definir propiedades especificas pero quizá no todas. De esta forma los objetos del tipo FunctionStore sólo pueden tener las propiedades action, discount o restore.

type AvailableProperty = 'action' | 'discount' | 'restore';

type FunctionStore {
    [key: AvailableProperty]: Function
};