aboutsummaryrefslogtreecommitdiff
path: root/node_modules/tslint/lib/rules/preferObjectSpreadRule.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/tslint/lib/rules/preferObjectSpreadRule.js')
-rw-r--r--node_modules/tslint/lib/rules/preferObjectSpreadRule.js14
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: