Tslint: 3.12.0: TypeError: Cannot read property 'kind' of undefined

Created on 26 Jun 2016  路  17Comments  路  Source: palantir/tslint

Bug Report

  • TSLint version: 3.12.0
  • TypeScript version: 1.8.10
  • Running TSLint via: CLI

after update to 3.12.0 i got a following error when run tslint:

/home/sanex/PhpstormProjects/javascript-obfuscator/node_modules/tslint/lib/rules/typedefRule.js:134
        var performCheck = !(node.initializer.kind === ts.SyntaxKind.ArrowFunction && node.type == null);


TypeError: Cannot read property 'kind' of undefined
 at TypedefWalker.visitPropertyDeclaration (/home/sanex/PhpstormProjects/javascript-obfuscator/node_modules/tslint/lib/rules/typedefRule.js:134:46)
    at TypedefWalker.SyntaxWalker.visitNode (/home/sanex/PhpstormProjects/javascript-obfuscator/node_modules/tslint/lib/language/walker/syntaxWalker.js:399:22)
    at /home/sanex/PhpstormProjects/javascript-obfuscator/node_modules/tslint/lib/language/walker/syntaxWalker.js:459:63
    at visitEachNode (/home/sanex/PhpstormProjects/javascript-obfuscator/node_modules/typescript/lib/typescript.js:7255:30)
    at Object.forEachChild (/home/sanex/PhpstormProjects/javascript-obfuscator/node_modules/typescript/lib/typescript.js:7484:21)
    at TypedefWalker.SyntaxWalker.walkChildren (/home/sanex/PhpstormProjects/javascript-obfuscator/node_modules/tslint/lib/language/walker/syntaxWalker.js:459:12)
    at TypedefWalker.SyntaxWalker.visitClassDeclaration (/home/sanex/PhpstormProjects/javascript-obfuscator/node_modules/tslint/lib/language/walker/syntaxWalker.js:43:14)
    at TypedefWalker.SyntaxWalker.visitNode (/home/sanex/PhpstormProjects/javascript-obfuscator/node_modules/tslint/lib/language/walker/syntaxWalker.js:264:22)
    at /home/sanex/PhpstormProjects/javascript-obfuscator/node_modules/tslint/lib/language/walker/syntaxWalker.js:459:63
    at visitEachNode (/home/sanex/PhpstormProjects/javascript-obfuscator/node_modules/typescript/lib/typescript.js:7255:30)

config:

{
  "rules": {
    ...
    "typedef": [
      true,
      "call-signature",
      "parameter",
      "arrow-parameter",
      "property-declaration",
      "variable-declaration",
      "member-variable-declaration"
    ],
   ...
  }
}
Bug

Most helpful comment

@JKillian Running into a slightly different variation of this on both the current published version & @next ( please let me know if you would prefer a new issue as opposed to using the "related-ish" one )

Node : v6.3.0
OSX: 10.11.4

Using the following config ...

    "one-line": [
      true,
      "check-open-brace",
      "check-catch",
      "check-else",
      "check-finally",
      "check-whitespace"
    ],
/Users/d3viant0ne/Projects/easymetrics/emnext-client/node_modules/tslint/lib/rules/oneLineRule.js:163
        if (body.kind === ts.SyntaxKind.ModuleBlock) {
                ^

TypeError: Cannot read property 'kind' of undefined
    at OneLineWalker.visitModuleDeclaration (/Users/d3viant0ne/Projects/easymetrics/emnext-client/node_modules/tslint/lib/rules/oneLine
    at OneLineWalker.SyntaxWalker.visitNode (/Users/d3viant0ne/Projects/easymetrics/emnext-client/node_modules/tslint/lib/language/walk
    at /Users/d3viant0ne/Projects/easymetrics/emnext-client/node_modules/tslint/lib/language/walker/syntaxWalker.js:459:63
    at visitEachNode (/Users/d3viant0ne/Projects/easymetrics/emnext-client/node_modules/typescript/lib/typescript.js:7959:30)
    at Object.forEachChild (/Users/d3viant0ne/Projects/easymetrics/emnext-client/node_modules/typescript/lib/typescript.js:8117:24)
    at OneLineWalker.SyntaxWalker.walkChildren (/Users/d3viant0ne/Projects/easymetrics/emnext-client/node_modules/tslint/lib/language/w
    at OneLineWalker.SyntaxWalker.visitSourceFile (/Users/d3viant0ne/Projects/easymetrics/emnext-client/node_modules/tslint/lib/languag
    at OneLineWalker.SyntaxWalker.visitNode (/Users/d3viant0ne/Projects/easymetrics/emnext-client/node_modules/tslint/lib/language/walk
    at OneLineWalker.SyntaxWalker.walk (/Users/d3viant0ne/Projects/easymetrics/emnext-client/node_modules/tslint/lib/language/walker/sy
    at Rule.AbstractRule.applyWithWalker (/Users/d3viant0ne/Projects/easymetrics/emnext-client/node_modules/tslint/lib/language/rule/ab

All 17 comments

Thanks for the report @sanex3339 - can you post a snippet of code that causes this error?

TSLint check all files in this directory:
https://github.com/sanex3339/javascript-obfuscator/tree/dev/src

I am seeing this as well. Stacktrace:

TypeError: Cannot read property 'kind' of undefined
    at TypedefWalker.visitPropertyDeclaration (/home/portaj/devel/portaj/mtna/Montana-News-Archive/node_modules/tslint/lib/rules/typedefRule.js:134:46)
    at TypedefWalker.SyntaxWalker.visitNode (/home/portaj/devel/portaj/mtna/Montana-News-Archive/node_modules/tslint/lib/language/walker/syntaxWalker.js:399:22)
    at /home/portaj/devel/portaj/mtna/Montana-News-Archive/node_modules/tslint/lib/language/walker/syntaxWalker.js:459:63
    at visitEachNode (/home/portaj/devel/portaj/mtna/Montana-News-Archive/node_modules/typescript/lib/typescript.js:7255:30)
    at Object.forEachChild (/home/portaj/devel/portaj/mtna/Montana-News-Archive/node_modules/typescript/lib/typescript.js:7484:21)
    at TypedefWalker.SyntaxWalker.walkChildren (/home/portaj/devel/portaj/mtna/Montana-News-Archive/node_modules/tslint/lib/language/walker/syntaxWalker.js:459:12)
    at TypedefWalker.SyntaxWalker.visitClassDeclaration (/home/portaj/devel/portaj/mtna/Montana-News-Archive/node_modules/tslint/lib/language/walker/syntaxWalker.js:43:14)
    at TypedefWalker.SyntaxWalker.visitNode (/home/portaj/devel/portaj/mtna/Montana-News-Archive/node_modules/tslint/lib/language/walker/syntaxWalker.js:264:22)
    at /home/portaj/devel/portaj/mtna/Montana-News-Archive/node_modules/tslint/lib/language/walker/syntaxWalker.js:459:63
    at visitEachNode (/home/portaj/devel/portaj/mtna/Montana-News-Archive/node_modules/typescript/lib/typescript.js:7255:30)

Thanks @sanex3339 and @JonathanPorta, I've filed #1346 which should fix this.

thank you!

Thanks for hopping on this so quick!

New version of TSLint is published, let me know if you run into any other issues!

@JKillian Running into a slightly different variation of this on both the current published version & @next ( please let me know if you would prefer a new issue as opposed to using the "related-ish" one )

Node : v6.3.0
OSX: 10.11.4

Using the following config ...

    "one-line": [
      true,
      "check-open-brace",
      "check-catch",
      "check-else",
      "check-finally",
      "check-whitespace"
    ],
/Users/d3viant0ne/Projects/easymetrics/emnext-client/node_modules/tslint/lib/rules/oneLineRule.js:163
        if (body.kind === ts.SyntaxKind.ModuleBlock) {
                ^

TypeError: Cannot read property 'kind' of undefined
    at OneLineWalker.visitModuleDeclaration (/Users/d3viant0ne/Projects/easymetrics/emnext-client/node_modules/tslint/lib/rules/oneLine
    at OneLineWalker.SyntaxWalker.visitNode (/Users/d3viant0ne/Projects/easymetrics/emnext-client/node_modules/tslint/lib/language/walk
    at /Users/d3viant0ne/Projects/easymetrics/emnext-client/node_modules/tslint/lib/language/walker/syntaxWalker.js:459:63
    at visitEachNode (/Users/d3viant0ne/Projects/easymetrics/emnext-client/node_modules/typescript/lib/typescript.js:7959:30)
    at Object.forEachChild (/Users/d3viant0ne/Projects/easymetrics/emnext-client/node_modules/typescript/lib/typescript.js:8117:24)
    at OneLineWalker.SyntaxWalker.walkChildren (/Users/d3viant0ne/Projects/easymetrics/emnext-client/node_modules/tslint/lib/language/w
    at OneLineWalker.SyntaxWalker.visitSourceFile (/Users/d3viant0ne/Projects/easymetrics/emnext-client/node_modules/tslint/lib/languag
    at OneLineWalker.SyntaxWalker.visitNode (/Users/d3viant0ne/Projects/easymetrics/emnext-client/node_modules/tslint/lib/language/walk
    at OneLineWalker.SyntaxWalker.walk (/Users/d3viant0ne/Projects/easymetrics/emnext-client/node_modules/tslint/lib/language/walker/sy
    at Rule.AbstractRule.applyWithWalker (/Users/d3viant0ne/Projects/easymetrics/emnext-client/node_modules/tslint/lib/language/rule/ab

Exact same stack trace for me. The issue does occur on Travis but not on my local Windows machine. Both running Node 6.

same issue here. @d3viant0ne should probably open a new ticket, this one is closed.

Yeah a new ticket would be nice, as well as an isolated code sample where the linter crashes.

@adidahiya - I'll open a new ticket and get you an isolated example

I had this issue in the ng2 starter pack using [email protected] and traced the error to that file https://github.com/AngularClass/angular2-webpack-starter/blob/master/src/custom-typings.d.ts

I resolved it by commenting out this line

declare module '*';

The error stack:

/Users/igor/dev/own/lang-project/ld-angular-rx/node_modules/tslint/lib/rules/oneLineRule.js:163
        if (body.kind === ts.SyntaxKind.ModuleBlock) {
                ^

TypeError: Cannot read property 'kind' of undefined
    at OneLineWalker.visitModuleDeclaration (/Users/igor/dev/own/lang-project/ld-angular-rx/node_modules/tslint/lib/rules/oneLineRule.js:163:17)
    at OneLineWalker.SyntaxWalker.visitNode (/Users/igor/dev/own/lang-project/ld-angular-rx/node_modules/tslint/lib/language/walker/syntaxWalker.js:366:22)
    at /Users/igor/dev/own/lang-project/ld-angular-rx/node_modules/tslint/lib/language/walker/syntaxWalker.js:459:63
    at visitEachNode (/Users/igor/dev/own/lang-project/ld-angular-rx/node_modules/typescript/lib/typescript.js:8251:30)
    at Object.forEachChild (/Users/igor/dev/own/lang-project/ld-angular-rx/node_modules/typescript/lib/typescript.js:8411:24)
    at OneLineWalker.SyntaxWalker.walkChildren (/Users/igor/dev/own/lang-project/ld-angular-rx/node_modules/tslint/lib/language/walker/syntaxWalker.js:459:12)
    at OneLineWalker.SyntaxWalker.visitSourceFile (/Users/igor/dev/own/lang-project/ld-angular-rx/node_modules/tslint/lib/language/walker/syntaxWalker.js:190:14)
    at OneLineWalker.SyntaxWalker.visitNode (/Users/igor/dev/own/lang-project/ld-angular-rx/node_modules/tslint/lib/language/walker/syntaxWalker.js:414:22)
    at OneLineWalker.SyntaxWalker.walk (/Users/igor/dev/own/lang-project/ld-angular-rx/node_modules/tslint/lib/language/walker/syntaxWalker.js:7:14)
    at Rule.AbstractRule.applyWithWalker (/Users/igor/dev/own/lang-project/ld-angular-rx/node_modules/tslint/lib/language/rule/abstractRule.js:19:16)

@omelhoro that looks like #1425

Was this page helpful?
0 / 5 - 0 ratings