Starcounter-Jack / JSON-Patch

Lean and mean Javascript implementation of the JSON-Patch standard (RFC 6902). Update JSON documents using delta patches.
MIT License
1.78k stars 215 forks source link

Updated typing for deepClone method #299

Open ajmcquilkin opened 2 years ago

ajmcquilkin commented 2 years ago

Typing for the deepClone function is useful to end users since it removes the need for a redundant type cast. For example:

const newReport = deepClone(currentReport) as IReport; // current typing
const newReport = deepClone<IReport>(currentReport); // explicit typing
const newReport = deepClone(currentReport); // implicit typing

The added generic was given a default any type to maintain backwards compatibility, and the return type was set to be T or null to guarantee the change wouldn't break any repositories using the tsconfig strictNullChecks option.