Browser Data Shapes
Form Payload Shape
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.