Form entries can be converted into an application payload before validation or submission.

Form Payload Shape

form.ts
type SignupPayload = {
    name: string;
    newsletter: boolean;
};

function buildPayload(entries: string[][]): SignupPayload {
    const values: Record<string, string> = {};

    for (const [name, value] of entries) {
        values[name] = value;
    }

    return {
        name: values.name,
        newsletter: values.newsletter === "yes"
    };
}

const newsletterChoice: string = ;
const entries: string[][] = [
    ["name", "Ada"],
    ["newsletter", newsletterChoice]
];
const payload: SignupPayload = buildPayload(entries);

console.log(`${payload.name}:${payload.newsletter ? "subscribed" : "skipped"}`);
type SignupPayload = {
    name: string;
    newsletter: boolean;
};

function buildPayload(entries: string[][]): SignupPayload {
    const values: Record<string, string> = {};

    for (const [name, value] of entries) {
        values[name] = value;
    }

    return {
        name: values.name,
        newsletter: values.newsletter === "yes"
    };
}

const newsletterChoice: string = ;
const entries: string[][] = [
    ["name", "Ada"],
    ["newsletter", newsletterChoice]
];
const payload: SignupPayload = buildPayload(entries);

console.log(`${payload.name}:${payload.newsletter ? "subscribed" : "skipped"}`);
form payload Mapping form entries into a typed object gives later code stable property names and predictable conversions.