ts-data-forge
    Preparing search index...

    Function hasKey

    • Type guard function that checks if an object has a specific key as its own property.

      This function uses Object.hasOwn() to check if the given object has the specified key as its own property (not inherited). It acts as a type guard that narrows the type of the object to guarantee the key exists, enabling type-safe property access.

      Type Narrowing Behavior:

      • When the guard returns true, TypeScript narrows the object type to include the checked key
      • For union types, only union members that contain the key are preserved
      • The key's value type is preserved from the original object type when possible

      Type Parameters

      • const R extends UnknownRecord

        The type of the input object, must extend UnknownRecord

      • const K extends PropertyKey

        The type of the key to check for, must extend PropertyKey (string | number | symbol)

      Parameters

      • obj: R

        The object to check for the presence of the key

      • key: K

        The key to check for in the object

      Returns obj is HasKeyReturnType<R, K>

      true if the object has the specified key as its own property, false otherwise. When true, TypeScript narrows the object type to guarantee the key exists.

      const maybeUser: { id?: number; name?: string } = { id: 42 };

      if (hasKey(maybeUser, 'id')) {
      // `maybeUser` is now known to have an `id` property.
      assert(maybeUser.id === 42);
      } else {
      assert.fail('Expected the object to contain the id key.');
      }

      keyIsIn - Similar function that narrows the key type instead of the object type