Я пытаюсь создать универсальную функцию, которая будет возвращать мне точный интерфейс, основанный на аргументе enum, но любая попытка не удалась.
Может быть, я что-то упустил или делаю это просто неправильно?
Если я приведу результат к этому интерфейсу, все будет в порядке, но на самом деле это несколько бесполезно для меня.
enum Commands {
Info = "info",
Echo = "echo",
}
interface BaseRequest {
command: Commands;
timestamp: number;
}
interface InfoRequest extends BaseRequest {
command: Commands.Info;
}
interface EchoRequest extends BaseRequest {
command: Commands.Echo;
}
type GenericRequest = InfoRequest | EchoRequest;
const createRequest = (command: Commands) => ({
command,
timestamp: new Date().getTime(),
});
const sendRequest = (request: GenericRequest) => {};
const request = createRequest(Commands.Info);
sendRequest(request);