All files noThisRule.ts

100% Statements 17/17
100% Branches 4/4
100% Functions 4/4
100% Lines 14/14
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 231x 1x   1x 1x   1x 1x 1x   1x   1x   1x 14x 1x   14x     1x  
import * as ts from "typescript";
import * as Lint from "tslint";
 
export class Rule extends Lint.Rules.AbstractRule {
  public static FAILURE_STRING = "Unexpected this, use functions not classes.";
 
  public apply(sourceFile: ts.SourceFile): Lint.RuleFailure[] {
    const noThisKeywordWalker = new NoThisWalker(sourceFile, this.getOptions());
    return this.applyWithWalker(noThisKeywordWalker);
  }
}
 
class NoThisWalker extends Lint.RuleWalker {
 
  public visitNode(node: ts.Node): void {
    if (node && node.kind === ts.SyntaxKind.ThisKeyword) {
      this.addFailure(this.createFailure(node.getStart(), node.getWidth(), Rule.FAILURE_STRING));
    }
    super.visitNode(node);
  }
 
}