export function isValueMap(value: unknown): value is ValueMap { return isObject(value) && "key" in value;
}
export function isPath(key: string, value: unknown): value is string { return key === "path" && typeof value === "string";
}
export function isObject(value: unknown): value is Record<string, unknown> { returntypeof value === "object" && value !== null && !Array.isArray(value);
}
export function isComponentArrayReference(
value: unknown
): value is ComponentArrayReference { if (!isObject(value)) returnfalse; return"explicitList" in value || "template" in value;
}
function isStringValue(value: unknown): value is StringValue { return (
isObject(value) &&
("path" in value ||
("literal" in value && typeof value.literal === "string") || "literalString" in value)
);
}
function isNumberValue(value: unknown): value is NumberValue { return (
isObject(value) &&
("path" in value ||
("literal" in value && typeof value.literal === "number") || "literalNumber" in value)
);
}
function isBooleanValue(value: unknown): value is BooleanValue { return (
isObject(value) &&
("path" in value ||
("literal" in value && typeof value.literal === "boolean") || "literalBoolean" in value)
);
}
function isAnyComponentNode(value: unknown): value is AnyComponentNode { if (!isObject(value)) returnfalse; const hasBaseKeys = "id" in value && "type" in value && "properties" in value; if (!hasBaseKeys) returnfalse;
returntrue;
}
export function isResolvedAudioPlayer(
props: unknown
): props is ResolvedAudioPlayer { return isObject(props) && "url" in props && isStringValue(props.url);
}
export function isResolvedButton(props: unknown): props is ResolvedButton { return (
isObject(props) && "child" in props &&
isAnyComponentNode(props.child) && "action" in props
);
}
export function isResolvedCard(props: unknown): props is ResolvedCard { if (!isObject(props)) returnfalse; if (!("child" in props)) { if (!("children" in props)) { returnfalse;
} else { return (
Array.isArray(props.children) &&
props.children.every(isAnyComponentNode)
);
}
}
return isAnyComponentNode(props.child);
}
export function isResolvedCheckbox(props: unknown): props is ResolvedCheckbox { return (
isObject(props) && "label" in props &&
isStringValue(props.label) && "value" in props &&
isBooleanValue(props.value)
);
}
export function isResolvedColumn(props: unknown): props is ResolvedColumn { return (
isObject(props) && "children" in props &&
Array.isArray(props.children) &&
props.children.every(isAnyComponentNode)
);
}
export function isResolvedDateTimeInput(
props: unknown
): props is ResolvedDateTimeInput { return isObject(props) && "value" in props && isStringValue(props.value);
}
export function isResolvedDivider(props: unknown): props is ResolvedDivider { // Dividers can have all optional properties, so just checking if // it's an object is enough. return isObject(props);
}
export function isResolvedImage(props: unknown): props is ResolvedImage { return isObject(props) && "url" in props && isStringValue(props.url);
}
export function isResolvedIcon(props: unknown): props is ResolvedIcon { return isObject(props) && "name" in props && isStringValue(props.name);
}
export function isResolvedList(props: unknown): props is ResolvedList { return (
isObject(props) && "children" in props &&
Array.isArray(props.children) &&
props.children.every(isAnyComponentNode)
);
}
export function isResolvedModal(props: unknown): props is ResolvedModal { return (
isObject(props) && "entryPointChild" in props &&
isAnyComponentNode(props.entryPointChild) && "contentChild" in props &&
isAnyComponentNode(props.contentChild)
);
}
export function isResolvedMultipleChoice(
props: unknown
): props is ResolvedMultipleChoice { return isObject(props) && "selections" in props;
}
export function isResolvedRow(props: unknown): props is ResolvedRow { return (
isObject(props) && "children" in props &&
Array.isArray(props.children) &&
props.children.every(isAnyComponentNode)
);
}
export function isResolvedSlider(props: unknown): props is ResolvedSlider { return isObject(props) && "value" in props && isNumberValue(props.value);
}
function isResolvedTabItem(item: unknown): item is ResolvedTabItem { return (
isObject(item) && "title" in item &&
isStringValue(item.title) && "child" in item &&
isAnyComponentNode(item.child)
);
}
export function isResolvedTabs(props: unknown): props is ResolvedTabs { return (
isObject(props) && "tabItems" in props &&
Array.isArray(props.tabItems) &&
props.tabItems.every(isResolvedTabItem)
);
}
export function isResolvedText(props: unknown): props is ResolvedText { return isObject(props) && "text" in props && isStringValue(props.text);
}
export function isResolvedTextField(
props: unknown
): props is ResolvedTextField { return isObject(props) && "label" in props && isStringValue(props.label);
}
export function isResolvedVideo(props: unknown): props is ResolvedVideo { return isObject(props) && "url" in props && isStringValue(props.url);
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-06-10)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.