@laserware/arcade
    Preparing search index...

    Function entriesOf

    • Creates an array of [key, value] pairs for the specified dict. The purpose of this function is to allow an override for the type of the object key since TypeScript defaults to only allowing a string, number, or symbol (but it could be an enum).

      Only use this function when you know that the return value of Object.entries will always correspond to the keys/values of the specified object and doesn't contain any extra keys/values (which is probably the case most of the time if you're using plain JS objects).

      Type Parameters

      • V

        Type of value in the specified dict.

      • K = string

        Type of key in the specified dict.

      Parameters

      • dict: Dict<V>

        Object to extrapolate entries from.

      Returns [K, V][]

      Array of [key, value] pairs that adhere to the specified types.

      The value type V is the first specifiable generic because in most cases, you're using a string for the key (which is what is used for the second generic K as the default).

      enum SomeKey { A = "a", B = "b", C = "c" };

      const dict: Record<SomeKey, number> = {
      [SomeKey.A]: 1,
      [SomeKey.B]: 2,
      [SomeKey.C]: 3,
      };

      const untypedEntries = Object.entries(dict);
      for (const [key, value] of untypedEntries) {
      // This will throw a TypeScript error:
      console.log(dict[key]);
      }

      const typedEntries = entriesOf<number, SomeKey>(dict);
      for (const [key, value] of typedEntries) {
      // This will *not* throw a TypeScript error:
      console.log(dict[key]);
      }