diff options
Diffstat (limited to 'node_modules/tslint/lib/rules/preferObjectSpreadRule.js')
-rw-r--r-- | node_modules/tslint/lib/rules/preferObjectSpreadRule.js | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/node_modules/tslint/lib/rules/preferObjectSpreadRule.js b/node_modules/tslint/lib/rules/preferObjectSpreadRule.js index c835ed693..8cd5005be 100644 --- a/node_modules/tslint/lib/rules/preferObjectSpreadRule.js +++ b/node_modules/tslint/lib/rules/preferObjectSpreadRule.js @@ -20,7 +20,7 @@ var tslib_1 = require("tslib"); var tsutils_1 = require("tsutils"); var ts = require("typescript"); var Lint = require("../index"); -var Rule = (function (_super) { +var Rule = /** @class */ (function (_super) { tslib_1.__extends(Rule, _super); function Rule() { return _super !== null && _super.apply(this, arguments) || this; @@ -53,7 +53,14 @@ function walk(ctx) { tsutils_1.isIdentifier(node.expression.expression) && node.expression.expression.text === "Object" && !ts.isFunctionLike(node.arguments[0]) && // Object.assign(...someArray) cannot be written as object spread - !node.arguments.some(tsutils_1.isSpreadElement)) { + !node.arguments.some(tsutils_1.isSpreadElement) && + /** + * @TODO + * Remove !node.arguments.some(isThisKeyword) when typescript get's + * support for spread types. + * PR: https://github.com/Microsoft/TypeScript/issues/10727 + */ + !node.arguments.some(isThisKeyword)) { if (node.arguments[0].kind === ts.SyntaxKind.ObjectLiteralExpression) { ctx.addFailureAtNode(node, Rule.FAILURE_STRING, createFix(node, ctx.sourceFile)); } @@ -103,6 +110,9 @@ function createFix(node, sourceFile) { } return fix; } +function isThisKeyword(node) { + return node.kind === ts.SyntaxKind.ThisKeyword; +} function needsParens(node) { switch (node.kind) { case ts.SyntaxKind.ConditionalExpression: |