microsoft / microsoft/TypeScript

ScriptKind.Deferred treated as LanguageVariant.Standard

Abierto
#60,125 9 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Experimentation Needed Suggestion
Lenguaje dominante
Go
Estrellas
111k
Forks
14.4k
Merge medio
1 d 19 h
PR fusionados (30 d)
117

Descripción

🔎 Search Terms

Deferred ScriptKind TSX
Deferred ScriptKind Standard

Vue, eslint, tsx parser error

🕗 Version & Regression Information

Currently looking at TypeScript 5.5+ likely affects most versions of typescript.

⏯ Playground Link

No response

💻 Code

Not specific to TS code but compiler and parsing.

🙁 Actual behavior

When using typescript-eslint with there new projectSettings option, along side vue with tsx. The file fails to parse

Component.vue
41:8  error  Parsing error: '>' expected

Deferred ScriptKinds are treated as LanguageVariant.Standard rather than LanguageVariant.JSX

https://github.com/microsoft/TypeScript/blob/main/src/compiler/parser.ts#L1746
https://github.com/microsoft/TypeScript/blob/main/src/compiler/utilities.ts#L8832

🙂 Expected behavior

Under the assumption that ScriptKind.Deferred could be treated as LanguageVariant.JSX then this resolves typescript-eslints issue with parsing extraFileExtensions such as vue files.

I'm unsure what the consequences and other use cases of ScriptKind.Deferred are so it could be as simple as adjusting getLanguageVariant.

Additional information about the issue

https://github.com/typescript-eslint/typescript-eslint/issues/9934

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con las ubicaciones enlazadas en src/compiler/parser.ts y src/compiler/utilities.ts, especialmente con el manejo de la variante de lenguaje para ScriptKind.Deferred. Reproduce el fallo de análisis mediante el issue relacionado de typescript-eslint usando un archivo Vue con TSX y, a continuación, evalúa las consecuencias de tratar Deferred como JSX. Se considera completado cuando el error de análisis de Vue reportado está resuelto sin romper otros casos de uso de Deferred ScriptKind.

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
42/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.