Typescript: Não é possível ler a propriedade 'pai' de indefinido em collectEnclosingScopes

Criado em 21 mar. 2019  ·  3Comentários  ·  Fonte: microsoft/TypeScript


Versão TypeScript: 3.4.0-rc

Erro

Ao editar algum código no VS Code, vi este erro. Desculpe, ainda não há etapas de repo

  ERR TypeScript Server Error (3.4.0-rc)
Cannot read property 'parent' of undefined
TypeError: Cannot read property 'parent' of undefined
    at collectEnclosingScopes (tsserver.js:117195:127)
    at getPossibleExtractionsWorker (tsserver.js:117275:30)
    at getPossibleExtractions (tsserver.js:117232:26)
    at Object.getAvailableActions (tsserver.js:116745:35)
    at tsserver.js:111488:128
    at getIterator (tsserver.js:625:23)
    at Object.next (tsserver.js:620:35)
    at Object.arrayFrom (tsserver.js:1253:32)
    at Object.getApplicableRefactors (tsserver.js:111487:23)
    at Proxy.getApplicableRefactors (tsserver.js:121287:32)
    at IOSession.Session.getApplicableRefactors (tsserver.js:130013:53)
    at Session.handlers.ts.createMapFromTemplate._a.(anonymous function) (tsserver.js:128853:61)
    at tsserver.js:130237:88
    at IOSession.Session.executeWithRequestId (tsserver.js:130228:28)
    at IOSession.Session.executeCommand (tsserver.js:130237:33)
    at IOSession.Session.onMessage (tsserver.js:130259:35)
    at Interface.<anonymous> (tsserver.js:131556:27)
    at Interface.emit (events.js:182:13)
    at Interface._onLine (readline.js:290:10)
    at Interface._normalWrite (readline.js:433:12)
    at Socket.ondata (readline.js:149:10)
    at Socket.emit (events.js:182:13)
    at addChunk (_stream_readable.js:279:12)
    at readableAddChunk (_stream_readable.js:264:11)
    at Socket.Readable.push (_stream_readable.js:219:10)
    at Pipe.onread (net.js:636:20): Error: TypeScript Server Error (3.4.0-rc)
Bug

Comentários muito úteis

Também recebi um erro semelhante:

Versões do TypeScript : 3.7.1-rc , 3.7.2 , 3.7.3-insiders.20191123

Nenhum erro ocorre <=3.6.4

TypeError: Cannot read property 'parent' of undefined
    at Object.getDeclarationOfExpando (/<redacted>/node_modules/typescript/lib/tsc.js:8604:19)
    at getTypeOfFuncClassEnumModule (/<redacted>/node_modules/typescript/lib/tsc.js:32596:40)
    at getTypeOfSymbol (/<redacted>/node_modules/typescript/lib/tsc.js:32702:24)
    at getExternalModuleMember (/<redacted>/node_modules/typescript/lib/tsc.js:28512:64)
    at getTargetOfExportSpecifier (/<redacted>/node_modules/typescript/lib/tsc.js:28557:17)
    at getTargetOfAliasDeclaration (/<redacted>/node_modules/typescript/lib/tsc.js:28600:28)
    at resolveAlias (/<redacted>/node_modules/typescript/lib/tsc.js:28633:30)
    at resolveSymbol (/<redacted>/node_modules/typescript/lib/tsc.js:28623:67)
    at getSymbolIfSameReference (/<redacted>/node_modules/typescript/lib/tsc.js:29170:33)
    at /<redacted>/node_modules/typescript/lib/tsc.js:29164:21

Todos 3 comentários

O único lugar em que isso pode acontecer no código é aqui:

        while (true) {
            current = current.parent;
            // A function parameter's initializer is actually in the outer scope, not the function declaration
            if (current.kind === SyntaxKind.Parameter) {
                // Skip all the way to the outer scope of the function that declared this parameter
                current = findAncestor(current, parent => isFunctionLikeDeclaration(parent))!.parent;
            }

Suponho que encontramos um parâmetro dentro de um JSDoc próximo ao nível superior e, em seguida, tentamos caminhar até a função delimitadora decl, mas não encontramos um e chegamos ao fundo do poço.

findAncestor(...)! é muito suspeito e seria bom bani-lo ...

Recebi um erro semelhante:

Versão: typescript 3.7.0-dev.20191017

ERROR in ./node_modules/hammerjs/hammer.js                                         
Module build failed (from ./node_modules/ts-loader/index.js):                       
TypeError: Cannot read property 'parent' of undefined                               
    at getOuterTypeParameters (/<redacted>/node_modules/typescript/lib/typescript.js:39886:29)                                   
    at getOuterTypeParametersOfClassOrInterface (/<redacted>/node_modules/typescript/lib/typescript.js:39944:20)
    at getDeclaredTypeOfClassOrInterface (/<redacted>/node_modules/typescript/lib/typescript.js:40217:43)
    at createAnonymousTypeNode (/<redacted>/node_modules/typescript/lib/typescript.js:36601:59)
    at typeToTypeNodeHelper (/<redacted>/node_modules/typescript/lib/typescript.js:36547:28)                                     
    at /<redacted>/node_modules/typescript/lib/typescript.js:36336:106
    at withContext (/<redacted>/node_modules/typescript/lib/typescript.js:36381:37)
    at Object.typeToTypeNode (/<redacted>/node_modules/typescript/lib/typescript.js:36336:28)
    at typeToString (/<redacted>/node_modules/typescript/lib/typescript.js:36303:40)                                             
    at reportNonexistentProperty (/<redacted>/node_modules/typescript/lib/typescript.js:54143:165)

Também recebi um erro semelhante:

Versões do TypeScript : 3.7.1-rc , 3.7.2 , 3.7.3-insiders.20191123

Nenhum erro ocorre <=3.6.4

TypeError: Cannot read property 'parent' of undefined
    at Object.getDeclarationOfExpando (/<redacted>/node_modules/typescript/lib/tsc.js:8604:19)
    at getTypeOfFuncClassEnumModule (/<redacted>/node_modules/typescript/lib/tsc.js:32596:40)
    at getTypeOfSymbol (/<redacted>/node_modules/typescript/lib/tsc.js:32702:24)
    at getExternalModuleMember (/<redacted>/node_modules/typescript/lib/tsc.js:28512:64)
    at getTargetOfExportSpecifier (/<redacted>/node_modules/typescript/lib/tsc.js:28557:17)
    at getTargetOfAliasDeclaration (/<redacted>/node_modules/typescript/lib/tsc.js:28600:28)
    at resolveAlias (/<redacted>/node_modules/typescript/lib/tsc.js:28633:30)
    at resolveSymbol (/<redacted>/node_modules/typescript/lib/tsc.js:28623:67)
    at getSymbolIfSameReference (/<redacted>/node_modules/typescript/lib/tsc.js:29170:33)
    at /<redacted>/node_modules/typescript/lib/tsc.js:29164:21
Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

bgrieder picture bgrieder  ·  3Comentários

dlaberge picture dlaberge  ·  3Comentários

weswigham picture weswigham  ·  3Comentários

CyrusNajmabadi picture CyrusNajmabadi  ·  3Comentários

wmaurer picture wmaurer  ·  3Comentários