Всем привет!
Лучше показать проблему на примере, по этому вот... У меня есть такой объединенный тип
type Creature = {
type: "people";
subtype: "adult";
params: IPeopleAdultParams;
} | {
type: "animal";
subtype: "cat";
params: IAnimalCatParams;
}
Есть массив:
const creatures = Creature[];
Вместо того, чтобы прописывать постоянно что-то на подобии
creatures.push({
type: 'animal',
subtype: 'cat',
params: {
...
}});
я хочу использовать функцию push(type, subtype, params), которая и будет выполнять код выше, с переданными ей аргументами.
Например, push('people', 'adult', {...});
Примерный вид функции:
function push(type: ?, subtype: ??, params: ???) {
creatures.push({type, subtype, params})
}
Тип subtype отличается, в зависимости от типа type (ну, это видно по определению типа Creature), также само, тип params зависит от типов type & subtype.
Как задать типы аргументов для функции push?
Заранее спасибо за помощь! :)