Typescript: No se puede leer la propiedad 'parent' de undefined en collectEnclosingScopes

Creado en 21 mar. 2019  ·  3Comentarios  ·  Fuente: microsoft/TypeScript


Versión de TypeScript: 3.4.0-rc

Insecto

Mientras editaba algún código en VS Code, vi este error. Lo siento, no hay pasos de repositorio todavía

  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

Comentario más útil

También recibí un error similar:

Versiones de TypeScript : 3.7.1-rc , 3.7.2 , 3.7.3-insiders.20191123

No se produce ningún error <=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 comentarios

El único lugar en el que esto podría suceder en el código es aquí:

        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;
            }

Supongo que encontramos un parámetro dentro de un JSDoc cerca del nivel superior y luego intentamos caminar hasta la función adjunta decl, pero no encontramos uno y tocamos fondo.

findAncestor(...)! es muy sospechoso y sería bueno prohibirlo ...

Tengo un error similar:

Versión: mecanografiado 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)

También recibí un error similar:

Versiones de TypeScript : 3.7.1-rc , 3.7.2 , 3.7.3-insiders.20191123

No se produce ningún error <=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
¿Fue útil esta página
0 / 5 - 0 calificaciones