types.d.ts 873 B

12345678910111213141516171819202122232425262728
  1. declare namespace types {
  2. interface Collection<T> {}
  3. interface List<T> extends Collection<T> {
  4. [index: number]: T;
  5. length: number;
  6. }
  7. interface ListIterator<T, TResult> {
  8. (value: T, index: number, list: List<T>): TResult;
  9. }
  10. interface Dictionary<T> extends Collection<T> {
  11. [index: string]: T;
  12. }
  13. interface ObjectIterator<T, TResult> {
  14. (element: T, key: string, list: Dictionary<T>): TResult;
  15. }
  16. interface MemoIterator<T, TResult> {
  17. (prev: TResult, curr: T, index: number, list: List<T>): TResult;
  18. }
  19. interface MemoObjectIterator<T, TResult> {
  20. (prev: TResult, curr: T, key: string, list: Dictionary<T>): TResult;
  21. }
  22. type Fn<T> = (...args: any[]) => T;
  23. type AnyFn = Fn<any>;
  24. type PlainObj<T> = { [name: string]: T };
  25. }
  26. declare const types: {};
  27. export = types;