Skip to content

yummies/types ​

Description ​

This module collects TypeScript-only helpers: ValueOf, nullable aliases, branded types, and patterns for props and generics. Nothing here exists at runtime — use import type so bundlers drop the imports entirely. The same ideas are also published as ambient globals under a separate entry (see below) when you want types in scope without repeating imports in every file.

yummies/types.global ​

Use this subpath when you prefer global declarations (no per-file imports). After installing the package, reference the built .d.ts bundle — typically via a side-effect import that pulls ambient types into the compilation unit:

ts
import "yummies/types.global";
```Or list it under `compilerOptions.types` in **`tsconfig.json`** so `tsc` loads it for the project:

```json
{
  "compilerOptions": {
    "types": ["yummies/types.global"]
  }
}
```## `yummies/types` (library)

Prefer this entry when you want **explicit**, traceable imports at each call site (tree-shaking
friendly and clearer in reviews). The root package may re-export some symbols, but
**`yummies/types`** is the dedicated surface for type-only utilities.

```ts
import type { AnyObject, Maybe } from "yummies/types";

ValueOf ​

Extracts all values from an object or array type.

ExtractEnumKeys ​

Extracts enum keys as a union type.

ExtractEnumValues ​

Extracts enum values as a union type.

Maybe ​

Represents a type that can be either the specified type or undefined or null.

NotMaybe ​

Removes null and undefined from a type.

Nullable ​

Represents a type that can be either the specified type or null.

NotNullable ​

Removes null from a type.

AnyObject ​

Represents any object with any keys and any values.

Dict ​

Represents dictionary with any keys and expecting values;

EmptyObject ​

Represents an empty object with no properties.

MaybeArray ​

T or T[];

Primitive ​

Represents all primitive types in TypeScript.

AnyPrimitive ​

Deprecated: use Primitive type

Represents any primitive type (string, number, boolean, null, or undefined).

AnyFunction ​

Represents any function type.

UnionToIntersection ​

Converts a union type to an intersection type.

FalsyValues ​

Represents falsy values aligned with !Boolean(x) / typeGuard.isFalsy (undefined, null, empty string, false, 0, and 0n).

MaybeFalsy ​

Represents a type that can be either the specified type, undefined, or any other falsy value.

Fn ​

No description.

MaybeFn ​

Represents a type that can be either the specified type or a function returning that type.

Class ​

Represents a class constructor type.

DeepPartial ​

Creates a deeply partial version of a type, making all properties optional recursively.

PartialKeys ​

Makes specified keys of a type optional while keeping the rest required.

MaybeKeys ​

Makes specified keys of a type possibly Maybe<T> while keeping the rest required.

RequiredKeys ​

Makes specified keys of a type required while keeping the rest optional.

DefinedKeys ​

Applies Defined to the value types of specified keys while keeping the rest unchanged.

Unpromise ​

Deprecated: use Awaited<T> from stdlib of TypeScript

Extracts the inner type from a Promise type.

MaybeValues ​

Makes all values in an object type possibly undefined.

KeyOfByValue ​

Gets the keys of an object whose values match a specific type.

PickByValue ​

Picks properties from an object whose values match a specific type.

OmitByValue ​

Omits properties from an object whose values match a specific type.

IsPartial ​

Determines if all properties in a type are optional.

AllPropertiesOptional ​

Deprecated: use IsPartial<T> . Better naming

No description.

PartialIf ​

Conditionally makes a type partially optional based on a condition.

RecordEntries ​

Converts a record type into an array of key-value pairs.

RenameKey ​

Renames a key in an object type, preserving the optional nature of the property.

IsObjectEmpty ​

Determines if an object type is empty (has no properties).

IsEmptyArray ​

Determines if an array type is empty.

Params ​

Extracts the parameter types from a function type.

BrowserNativeObject ​

Represents browser native object types.

NonUndefined ​

Removes undefined from a type.

LiteralUnion ​

Creates a literal union type that includes both a specific literal type and a primitive type.

ExtractObjects ​

Extracts object types from a type, excluding primitives.

OverrideKey ​

Replace value in object by key

Example:

ts
type Test = { foo: string; bar?: number };
type FixedTest = OverrideKey<Test, 'bar', string>
// { foo: string; bar?: string }

IfEquals ​

Checks if two types are equal.

WritableKeys ​

Gets the writable keys of a type (keys that are not readonly).

ReadonlyKeys ​

Gets the readonly keys of a type.

NonReadonly ​

Gets the non-readonly properties of a type.

IsArray ​

Determines if a type is an array.

IsFunction ​

Determines if a type is a function.

IsObject ​

Determines if a type is an object (but not an array or function).

CopyObject ​

Creates a deep copy of an object type, preserving the structure.

MaybePromise ​

Represents a type that can be either the specified type or a Promise resolving to that type.

WithRequired ​

Makes specified keys of a type required while keeping the rest optional.

IndexKeys ​

Extracts the index keys from an array type.

Defined ​

Removes undefined from a type.

HasKey ​

Check existing key in object (T)

HasSpecificKey ​

Deprecated: use HasKey

No description.

IsAny ​

Checks type is any

Returns true if T is any

IsUnknown ​

No description.

AnyString ​

Helpful to use with union type literals ('str1' | 'str2' | AnyString)

AnyNumber ​

Helpful to use with union type literals (1 | 2 | AnyNumber)

AnyBoolean ​

Helpful to use with union type literals (true | AnyBoolean)

UpperFirst ​

Upperfirst string type. It will capitalize the first letter of the string and leave the rest of the string unchanged.

RequiredPropertyIfNeeded ​

No description.

Released under the MIT License.