* Change NumericDictionaryIterator's "key" to type "string"
* Finish updating unit tests
* Improve support of NumericDictionary.
* Update signature overloads of many methods.
* Improve many unit tests.
* Fix some mapValues overloads
* Revert changes to V3 files
* Improve _.omit to fully support Dictionary and NumericDictionary
* Remove unused DictionaryIterator typedefs
* Improve signatures of mapValues and add tons of unit tests
* Remove _.sample overloads that did not potentially return undefined.
* Simplify definition of "AnyKindOfDictionary"
* Fix one of the _.mapValues overloads
* Delete unnecessary/incorrect comments
* Improve _.forEach unit tests
* Clean up unit tests for mapValues
* Clean up unit tests for _.map
* Add more NumericDictionary test coverage
* Fix _.map to accept a PropertyPath param instead of just a string.
* Re-add DictionaryIterator and NumericDictionaryIterator definitions
for backward compatibility.
* Revert change to support PropertyPath in _.map
* Comment out parts of _.forEach tests that fail in TS 2.4
* Fix _.unionBy tests for TS 2.3
* Comment out _.mapKeys tests that break in TS 2.4
* Comment out parts of _.forEach tests that fail in TS 2.4 (again)
* Fix _.xor test that was broken in TS 2.3
* Comment out parts of _.map tests that fail in TS 2.4
* Remove invalid tests for _.some
* Remove "object" type from definition of ObjectIterateeCustom
* Comment out _.pick tests broken in TS 2.4
Use string union for Mocha interface name
Allow module augmentation to contribute new interface names
Allow `mocha.setup(interfaceName)`
Ambient variables are declared `const`, not `var`
`done` callbacks return `void` not `any`
factory functions (after, describe, it, etc) can return Promises, but not anything else.
- Promise support is explained here: https://mochajs.org/#require
- Allowing callbacks to return `any` could cause confusion. Returning anything other than a Promise is probably a mistake
- I was unable to forbid accepting a `done` callback while simultaneously returning a Promise, even though doing so triggers a runtime error
`keyof` requires at least TypeScript 2.1