Variable TypeaheadRowSchemaConst
TypeaheadRowSchema: Union<
readonly [
Struct<
{
__typename: Literal<"unknown">;
item: Struct<
{
kind: Literal<"unknown">;
kindKey: optionalKey<String>;
raw: Codec<Json, Json, never, never>;
},
>;
key: String;
},
>,
Struct<
{
__typename: Literal<"XDTTypeaheadSearchKeyword">;
key: String;
keyword_lazified: Struct<
{
id: String;
name: String;
user: optional<
NullOr<
Struct<
{
full_name: optional<(...)>;
id: String;
is_private: optional<(...)>;
is_verified: optional<(...)>;
latest_reel_media: optional<(...)>;
profile_pic_url: optional<(...)>;
search_serp_type: optional<(...)>;
username: String;
},
>,
>,
>;
},
>;
},
>,
Struct<
{
__typename: Literal<"XDTTypeaheadSearchUser">;
key: String;
rank_token: optional<String>;
user: Struct<
{
full_name: optional<String>;
id: String;
is_private: optional<Boolean>;
is_verified: optional<Boolean>;
latest_reel_media: optional<NullOr<Number>>;
profile_pic_url: optional<String>;
search_serp_type: optional<NullOr<Number>>;
username: String;
},
>;
},
>,
Struct<
{
__typename: Literal<"XDTTypeaheadSearchHashtag">;
hashtag: Struct<
{ id: String; media_count: optional<Number>; name: String },
>;
key: String;
},
>,
Struct<
{
__typename: Literal<"XDTTypeaheadSearchOverfetchedKeywords">;
key: String;
keywords: $Array<
Struct<
{
id: String;
name: String;
user: optional<
NullOr<
Struct<
{
full_name: ...;
id: ...;
is_private: ...;
is_verified: ...;
latest_reel_media: ...;
profile_pic_url: ...;
search_serp_type: ...;
username: ...;
},
>,
>,
>;
},
>,
>;
num_keywords_to_show: optional<Number>;
query_text: String;
},
>,
],
> = ...
One row of the field's typeahead list: the stream's result and the identity the list keys it by. The stream's results nest their id under the kind's own member (
user.id,keyword_lazified.id,hashtag.id, an overfetched entry'squery_text), so the row carries a key: the kind and the id, with the occurrence number among the rows of the same kind and id — never the row's position, so a retrace over a re-ordered answer still finds the row.