Type Alias TRecordOrObject<Key, Type>

TRecordOrObject<Key, Type>: Key extends TTemplateLiteral
    ? TFromTemplateLiteralKey<Key, Type>
    : Key extends TEnum<infer Enum extends TEnumRecord>
        ? TFromEnumKey<Enum, Type>
        : Key extends TUnion<infer Types extends TSchema[]>
            ? TFromUnionKey<Types, Type>
            : Key extends TLiteral<infer Value extends TLiteralValue>
                ? TFromLiteralKey<Value, Type>
                : Key extends TBoolean
                    ? TFromBooleanKey<Key, Type>
                    : Key extends TInteger
                        ? TFromIntegerKey<Key, Type>
                        : Key extends TNumber
                            ? TFromNumberKey<Key, Type>
                            : Key extends TRegExp
                                ? TFromRegExpKey<Key, Type>
                                : Key extends TString
                                    ? TFromStringKey<(...), (...)>
                                    : (...) extends (...)
                                        ? (...)
                                        : (...)

Type Parameters