diff --git a/types/diff/diff-tests.ts b/types/diff/diff-tests.ts index 0dea2a305e..2f640da490 100644 --- a/types/diff/diff-tests.ts +++ b/types/diff/diff-tests.ts @@ -16,6 +16,29 @@ diffArraysResult.forEach(result => { } }); +interface DiffObj { + value: number; +} +const a: DiffObj = {value: 0}; +const b: DiffObj = {value: 1}; +const c: DiffObj = {value: 2}; +const d: DiffObj = {value: 3}; +const arrayOptions: jsdiff.IArrayOptions = { + comparator: (left: DiffObj, right: DiffObj) => { + return left.value === right.value; + } +}; +const diffResult = jsdiff.diffArrays([a, b, c], [a, b, d], arrayOptions); +diffResult.forEach(result => { + if (result.added) { + console.log(`added ${result.value.length} line(s):`, ...result.value); + } else if (result.removed) { + console.log(`removed ${result.value.length} line(s):`, ...result.value); + } else { + console.log(`no changes`); + } +}); + // -------------------------- class LineDiffWithoutWhitespace extends jsdiff.Diff { diff --git a/types/diff/index.d.ts b/types/diff/index.d.ts index 33d337d1b7..760aee4e61 100644 --- a/types/diff/index.d.ts +++ b/types/diff/index.d.ts @@ -2,6 +2,7 @@ // Project: https://github.com/kpdecker/jsdiff // Definitions by: vvakame // szdc +// moc-yuto // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.2 @@ -18,8 +19,8 @@ declare namespace JsDiff { newlineIsToken?: boolean; } - interface IArrayOptions extends IOptions { - comparator?: (left: any, right: any) => number; + interface IArrayOptions { + comparator?: (left: any, right: any) => boolean; } interface IDiffResult {