microsoft / microsoft/TypeScript
`export import` of types is not allowed in namespaces when using `erasableSyntaxOnly`
Personne n'a encore pris cette issue.
- Langage dominant
- Go
- Étoiles
- 111k
- Forks
- 14.3k
- Merge moyen
- 2 j 4 h
- PR mergées (30 j)
- 132
Description
### 🔎 Search Terms
export import alias type-only namespaces erasableSyntaxOnly
### 🕗 Version & Regression Information
- I was unable to test this on prior versions because `erasableSyntaxOnly` was just released
### ⏯ Playground Link
https://www.typescriptlang.org/play/?erasableSyntaxOnly=true&ts=5.8.2#code/PTAEBcAsEsGdQO4HsBOBrWBYAUAOwIYC2AprAA74DGxEAnmaaAN46ijEAeZq4oAJsUoAbfChrh6NAGJIkbALygAjDgC+OHCFAAjAK68ocfklK4A5L2ToANKHxCoSXQHNIoaODPwJDALRJcIVpbcFkcAhJyKnFJWAB1D0gAJWJObhReFmw2NJ53QnTeABVQRR9GNQ1sLUN4IyQ0fFpwolIKalAAN3tdRiycrjzKANheADNZUuVK7Bxyuyny2AA6GSQ5yVAORdiEqBTcjOWi1dkgA
### 💻 Code
```ts
// this works
namespace types {
export declare type Foo = 1
}
// but this doesn't work, although it's type-only, too
namespace typesWithReexport {
export import T = types
}
// ignoring the error, generally these should be both accessible
type a = types.Foo
type x = typesWithReexport.T.Foo
```
### 🙁 Actual behavior
`export import` re-exporting a namespace (or namespace member) of a type-only namespace from another type-only namespace results in `This syntax is not allowed when 'erasableSyntaxOnly' is enabled.`
### 🙂 Expected behavior
It should not error.
### Additional information about the issue
@jakebailey asked me to open an issue to track this on bsky: https://bsky.app/profile/jakebailey.dev/post/3ljdc3ou7oc2w
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par la reproduction liée dans TypeScript Playground en utilisant erasableSyntaxOnly et comparez le namespace `export declare type` accepté avec la réexportation `export import` rejetée. Suivez le diagnostic du compilateur pour l’exemple de namespace et identifiez la vérification pertinente de erasable syntax. C’est terminé lorsque l’exemple ne signale plus l’erreur tout en préservant l’accès attendu au namespace réservé aux types.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- typescript
- Domaine
- compilers
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 35/100