Constructor param typed by a same-file interface is injected as a token (ReferenceError at runtime)
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 73/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- angular, rust, typescript
- Domaine
- compilers
Piste de recherche
Start by reading extract_param_token in component/decorator.rs and injectable/decorator.rs, then inspect the copies in the directive, pipe, and ng_module decorators. Compare how those paths handle type-only imports and check the compiler tests for dependency token extraction. Done means same-file interface and type alias parameters produce invalid dependencies and the reported runtime and strict injection behavior is covered.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Summary
A constructor parameter typed by an interface or type alias that is declared in the same file is compiled as an injection token. The interface is erased, so creating the class throws ReferenceError: Foo is not defined. ngtsc treats the parameter as having no token.
Found while re-checking #623.
Reproduction
import {Injectable} from '@angular/core';
interface Foo { a: number }
@Injectable()
export class S {
constructor(f: Foo) {}
}
| ngtsc 22.2.3 | oxc (main 5780233) | |
|---|---|---|
| full | i0.ɵɵinvalidFactory() |
new (t || S)(i0.ɵɵinject(Foo)) |
| partial | deps: "invalid" |
deps: [{ token: Foo }] |
strictInjectionParameters |
NG2003 error | no error |
Cause
extract_param_token (component/decorator.rs, injectable/decorator.rs, and the copies in the directive, pipe and ng_module decorators) takes the name of any TSTypeReference and never checks whether that name is a type-only declaration in the file.
A fix can mark the dep invalid when the name is an interface or type declared in the same file, as is already done for type-only imports. An interface imported through a value import from another file can't be detected one file at a time.
- Langage dominant
- Rust
- Étoiles
- 244
- Forks
- 26
- Merge moyen
- 23 h 41 min
- PR mergées (30 j)
- 106
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
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.
Autres issues de voidzero-dev/oxc-angular-compiler
-
Partial mode: NgModule-declared components get no dependencies, so their directives never matchOuverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
voidzero-dev/oxc-angular-compiler#655 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
voidzero-dev/oxc-angular-compiler#654 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 28/100
voidzero-dev/oxc-angular-compiler#623 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Support useDefineForClassFields: false (Class Field Lowering)Peut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
voidzero-dev/oxc-angular-compiler#73 · 11 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Angular 21.2.0 + @oxc-angular/vite 0.0.7 SSR runtime parity regressions (RouterLinkActive, Forms DI, Apollo DI) require app-level shimsPeut-être à nouveau libre @Brooooooklyn l’a pris il y a 240 jours, et aucune pull request n’est ouverte. Ouverte
voidzero-dev/oxc-angular-compiler#61 · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de voidzero-dev/oxc-angular-compiler
Issues similaires
-
bug priority: low ui
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
storytold/photocraft#10370 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
area:doc bug in progress needs-triage
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
bherbruck/solvecraft#9634 · 2 commentaires · 1 réaction ·
-
inflate: total_in uses plain += on c_ulong (32-bit on Windows), panics in debug for streams > 4 GiBOuverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 85/100
trifectatechfoundation/zlib-rs#570 · 1 commentaire ·
-
bug discord-triage
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
LanternOps/breeze#10755 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
aranya-project/aranya#803 ·