microsoft / microsoft/TypeScript
typescript shows error about import with new URL
Abierto
Nadie ha tomado este issue todavía.
Bug
Domain: ES Modules
- Lenguaje dominante
- Go
- Estrellas
- 111k
- Forks
- 14.3k
- Merge medio
- 1 d 19 h
- PR fusionados (30 d)
- 117
Descripción
Bug Report
🔎 Search Terms
new URL, import, dynamic import
🕗 Version & Regression Information
- This is a crash
- TypeScript 4.1.5
⏯ Playground Link
Playground link with relevant code
💻 Code
const url = new URL('/file.js', import.meta.url)
import(url)
export {}
🙁 Actual behavior
- TypeScript shows an error: "Dynamic import's specifier must be of type 'string', but here has type 'URL'.ts(7036)"
- Intellisense and type checking stop working in VSCode
🙂 Expected behavior
- TypeScript shows no error
- Intellisense and type checking are working normally in VSCode
Stacktrace from VSCode tsserver log:
Err 139 [22:05:40.607] Exception on executing command delayed processing of request 25:
Debug Failure. False expression: Containing file should be a module.
Error: Debug Failure. False expression: Containing file should be a module.
at checkImportMetaProperty (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:70401:22)
at checkMetaProperty (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:70376:24)
at checkExpressionWorker (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:72737:28)
at checkExpression (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:72628:38)
at checkNonNullExpression (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:67648:37)
at checkPropertyAccessExpression (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:67693:85)
at checkExpressionWorker (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:72708:28)
at checkExpression (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:72628:38)
at checkExpressionWithContextualType (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:72275:28)
at getSignatureApplicabilityError (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:68797:35)
at chooseOverload (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:69306:25)
at resolveCall (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:69180:26)
at resolveNewExpression (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:69649:24)
at resolveSignature (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:69961:28)
at getResolvedSignature (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:69990:26)
at checkCallExpression (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:70116:29)
at checkExpressionWorker (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:72719:28)
at checkExpression (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:72628:38)
at checkExpressionCached (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:72304:38)
at checkDeclarationInitializer (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:72317:148)
at getTypeForVariableLikeDeclaration (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:50953:74)
at getWidenedTypeForVariableLikeDeclaration (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:51355:56)
at getTypeOfVariableOrParameterOrPropertyWorker (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:51497:24)
at getTypeOfVariableOrParameterOrProperty (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:51392:28)
at getTypeOfSymbol (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:51735:24)
at checkVariableLikeDeclaration (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:75078:41)
at checkVariableDeclaration (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:75158:13)
at checkSourceElementWorker (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:77850:28)
at checkSourceElement (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:77695:17)
at Object.forEach (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:190:30)
at checkVariableStatement (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:75169:16)
at checkSourceElementWorker (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:77819:28)
at checkSourceElement (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:77695:17)
at Object.forEach (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:190:30)
at checkSourceFileWorker (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:78040:20)
at checkSourceFile (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:78007:13)
at getDiagnosticsWorker (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:78096:17)
at Object.getDiagnostics (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:78082:24)
at /snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:107275:85
at runWithCancellationToken (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:107237:24)
at getBindAndCheckDiagnosticsForFileNoCache (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:107263:20)
at getAndCacheDiagnostics (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:107539:26)
at getBindAndCheckDiagnosticsForFile (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:107260:20)
at getSemanticDiagnosticsForFile (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:107257:60)
at getDiagnosticsHelper (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:107179:24)
at Object.getSemanticDiagnostics (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:107192:20)
at Proxy.getSemanticDiagnostics (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:149195:47)
at IOSession.Session.semanticCheck (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:159618:52)
at /snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:159674:31
at MultistepOperation.executeAction (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:158624:25)
at /snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:158603:100
at IOSession.Session.executeWithRequestId (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:160908:28)
at Object.executeWithRequestId (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:159386:87)
at Immediate._onImmediate (/snap/code-insiders/638/usr/share/code-insiders/resources/app/extensions/node_modules/typescript/lib/tsserver.js:158603:41)
at processImmediate (internal/timers.js:456:21)
VSCode suggestions stop working:

Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con la reproducción vinculada de TypeScript Playground y sigue la ruta de tsserver indicada a través de checkImportMetaProperty y checkMetaProperty. Verifica que la URL pasada a dynamic import ya no produzca el error de tipos indicado ni la aserción de tsserver, y que VSCode IntelliSense y la comprobación de tipos sigan funcionando.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- typescript
- Área
- compilers
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100