export type ValueOf = T[keyof T] export interface AllKeysAre { [key: string]: T } export interface Dictionary { [index: string]: T } export interface NumericDictionary { [index: number]: T } export type AnyDictionary = Dictionary | NumericDictionary export type Many = T | ReadonlyArray export type PropertyName = string | number | symbol export type InKeyOf = { [K in keyof M]: M[K] } export type InKeyOfWithType = { [K in keyof M]: T } // export type PropertyNamesArray = Array>