diff --git a/types/ramda/index.d.ts b/types/ramda/index.d.ts index 4112f39f55..9196eb3b0c 100644 --- a/types/ramda/index.d.ts +++ b/types/ramda/index.d.ts @@ -1148,8 +1148,8 @@ declare namespace R { /** * Returns the nth element in a list. */ - nth(n: number, list: ReadonlyArray): T; - nth(n: number): (list: ReadonlyArray) => T; + nth(n: number, list: ReadonlyArray): T | undefined; + nth(n: number): (list: ReadonlyArray) => T | undefined; /** * Returns a function which returns its nth argument. @@ -1643,16 +1643,22 @@ declare namespace R { /** * Splits a given list or string at a given index. */ - splitAt(index: number, list: T): T[]; - splitAt(index: number): (list: T) => T[]; - splitAt(index: number, list: ReadonlyArray): T[][]; - splitAt(index: number): (list: ReadonlyArray) => T[][]; + splitAt(index: number, list: ReadonlyArray): [T[], T[]]; + splitAt(index: number, list: string): [string, string]; + splitAt(index: number): { + (list: ReadonlyArray): [T[], T[]]; + (list: string): [string, string]; + }; /** * Splits a collection into slices of the specified length. */ splitEvery(a: number, list: ReadonlyArray): T[][]; - splitEvery(a: number): (list: ReadonlyArray) => T[][]; + splitEvery(a: number, list: string): string[]; + splitEvery(a: number): { + (list: string): string[]; + (list: ReadonlyArray): T[][]; + }; /** * Takes a list and a predicate and returns a pair of lists with the following properties: diff --git a/types/ramda/ramda-tests.ts b/types/ramda/ramda-tests.ts index 014fdcf8e1..a49b891294 100644 --- a/types/ramda/ramda-tests.ts +++ b/types/ramda/ramda-tests.ts @@ -1899,6 +1899,14 @@ class Rectangle { const b: number[][] = R.splitAt(1)([1, 2, 3]); // => [[1], [2, 3]] const c: string[] = R.splitAt(5, "hello world"); // => ['hello', ' world'] const d: string[] = R.splitAt(-1, "foobar"); // => ['fooba', 'r'] + const e: string[] = R.splitAt(-1)("foobar"); // => ['fooba', 'r'] +}; + +() => { + const a: number[][] = R.splitEvery(3, [1, 2, 3, 4, 5, 6, 7]); // => [[1, 2, 3], [4, 5, 6], [7]] + const b: number[][] = R.splitEvery(3)([1, 2, 3, 4, 5, 6, 7]); // => [[1, 2, 3], [4, 5, 6], [7]] + const c: string[] = R.splitEvery(3, 'foobarbaz'); // => ['foo', 'bar', 'baz'] + const d: string[] = R.splitEvery(3)('foobarbaz'); // => ['foo', 'bar', 'baz'] }; () => {