From ff4b1f0af76d461815cdd40a5aeca85dc5111673 Mon Sep 17 00:00:00 2001 From: Piotr Roszatycki Date: Fri, 17 Nov 2017 13:51:19 +0100 Subject: [PATCH] String object has additional ES2017 and ESNEXT methods --- types/node/index.d.ts | 12 ++++++++++++ types/node/node-tests.ts | 24 ++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/types/node/index.d.ts b/types/node/index.d.ts index 0052b8256e..72e7cdbe30 100644 --- a/types/node/index.d.ts +++ b/types/node/index.d.ts @@ -68,6 +68,18 @@ interface SymbolConstructor { } declare var Symbol: SymbolConstructor; +// Node.js ES2017 and ESNEXT support +interface String { + /** Pads the current string with another string (repeated, if needed) so that the resulting string reaches the given length. The padding is applied from the start (left) of the current string. */ + padStart(targetLength?: number, padString?: string): string; + /** Pads the current string with a given string (repeated, if needed) so that the resulting string reaches a given length. The padding is applied from the end (right) of the current string. */ + padEnd(targetLength?: number, padString?: string): string; + /** Removes whitespace from the left end of a string. */ + trimLeft(): string; + /** Removes whitespace from the right end of a string. */ + trimRight(): string; +} + /************************************************ * * * GLOBAL * diff --git a/types/node/node-tests.ts b/types/node/node-tests.ts index 41639e52c6..34bba1f7ba 100644 --- a/types/node/node-tests.ts +++ b/types/node/node-tests.ts @@ -3751,3 +3751,27 @@ namespace module_tests { const m1: Module = new Module("moduleId"); const m2: Module = new Module.Module("moduleId"); } + +//////////////////////////////////////////////////// +/// Node.js ES2017 Support +//////////////////////////////////////////////////// + +namespace es2017_tests { + const s: string = 'foo'; + const s1: string = s.padStart(); + const s11: string = s.padStart(10); + const s12: string = s.padStart(10, 'x'); + const s2: string = s.padEnd(); + const s21: string = s.padEnd(10); + const s22: string = s.padEnd(10, 'x'); +} + +//////////////////////////////////////////////////// +/// Node.js ESNEXT Support +//////////////////////////////////////////////////// + +namespace esnext_tests { + const s: string = 'foo'; + const s1: string = s.trimLeft(); + const s2: string = s.trimRight(); +}