:sig bool DValue::has(String s) const :params s : child key to test return value : true when the node is map-shaped and contains the key :see >types 0_DValue get_by_path each is_array :content Tests whether a map-shaped `DValue` contains a child key, without creating it. This is a read accessor: it is `const`, never creates or modifies nodes, and dereferences internal references automatically. Returns `false` for scalar nodes and for missing keys. This matters because `operator[]` creates missing entries, exactly like `std::map`. Use `has()` (or `get_by_path()`) when you only want to look: ```cpp if(context.props.has("avatar")) print(component("components/basic/avatar", context.props["avatar"], context)); ``` `has()` only checks one level. For nested checks, combine with `get_by_path()`: ```cpp bool configured = context.cfg.get_by_path("mail/smtp").is_array(); ``` ## Related Concepts - PHP: `array_key_exists()` / `isset()` - JavaScript: `Object.hasOwn(obj, key)` / `key in obj`