NgModule: forwardRef(ns.X), ns.X.forRoot() and spread/const lists are not resolved (`.d.ts` gets `never`)
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 48/100
Rechercherichtung
Start by reading the ModuleLists implementation and the evaluator used for .d.ts references in #697; the issue does not name source files or tests. Trace how NgModule imports and exports are evaluated, then check that forward references, forRoot() calls, and spread or const lists resolve in declarations and JIT scopes. Done means those cases match the ngtsc behavior shown in the issue.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Found while reviewing #697. Checked against ngtsc 22.2.4. ngtsc resolves NgModule lists statically. Oxc keeps the raw text, so the .d.ts gets never. Consumers then can't see what the module exports, and JIT scopes keep the call expressions.
import * as dep from './dep';
@NgModule({ imports: [forwardRef(() => dep.DepModule), dep.DepModule.forRoot()] }) export class M {}
ngtsc Oxc
.d.ts ɵɵNgModuleDeclaration<M, never, [typeof i1.DepModule, ɵɵNgModuleDeclaration<M, never, never, never>
typeof i1.DepModule], never>
scope setNgModuleScope(M, { imports: [i1.DepModule, i1.DepModule] }) setNgModuleScope(M, { imports: [forwardRef(() => dep.DepModule), dep.DepModule.forRoot()] })
import { DepModule } from './dep';
const LIST = [DepModule];
@NgModule({ imports: [...LIST], exports: LIST }) export class M {}
ngtsc Oxc
.d.ts ɵɵNgModuleDeclaration<M, never, [typeof i1.DepModule], ɵɵNgModuleDeclaration<M, never, never, never>
[typeof i1.DepModule]>
scope setNgModuleScope(M, { imports: [DepModule], exports: [DepModule] }) setNgModuleScope(M, { imports: [...LIST], exports: LIST })
ɵinj imports: [LIST, DepModule] imports: [...LIST, LIST] (same at runtime)
To do: resolve forwardRef(() => ns.X), ns.X.forRoot() (ModuleWithProviders) and spread / const lists in ModuleLists, with the evaluator that #697's .d.ts references use.
- Vorherrschende Sprache
- Rust
- Sterne
- 245
- Forks
- 26
- Ø Merge
- 1 T. 23 Min.
- Gemergte PRs (30 T.)
- 83
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus voidzero-dev/oxc-angular-compiler
-
partial: host binding map keys are not always quoted like ngtsc (`click:` vs `"click":`)Evtl. vergeben @Brooooooklyn hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
voidzero-dev/oxc-angular-compiler#686 ·
Maintainer antworten meist innerhalb von 1 Tag
-
output: non-ASCII text not escaped like ngtsc; linker adds `changeDetection: 1` for v19 / v20.1Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 58/100
voidzero-dev/oxc-angular-compiler#707 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 45/100
voidzero-dev/oxc-angular-compiler#706 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 46/100
voidzero-dev/oxc-angular-compiler#705 ·
Maintainer antworten meist innerhalb von 1 Tag
-
host bindings: empty `[]` / `()` keys accepted, and `aria-*` host bindings stay DOM propertiesOffen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 56/100
voidzero-dev/oxc-angular-compiler#704 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in voidzero-dev/oxc-angular-compiler
Ähnliche Issues
-
Panic on live viewport resize when unstyled elements exist in display: none subtreeEvtl. vergeben @GoCoder7 hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
DioxusLabs/blitz#1488 ·
Maintainer antworten meist innerhalb von 1 Tag
-
🏷️ good first issue enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
Maintainer antworten meist innerhalb von 1 Tag
-
S-Needs triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 77/100
vectordotdev/vrl#2042 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
Maintainer antworten meist innerhalb von 1 Tag