ember-cli / ember-cli/ember-cli-htmlbars
app's TS files do not properly overwrite an addon's JS files
- Vorherrschende Sprache
- JavaScript
- Sterne
- 77
- Forks
- 65
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
I have the following example component in my addon:
**my-addon/addon/components/example/index.ts**
```
import templateOnly from '@ember/component/template-only';
export default templateOnly();
```hbs
**my-addon/addon/components/example/index.hbs**
```
```
**my-addon/app/components/example/index.js**
```js
export { default } from 'my-addon/components/loading';
```
Then in my app I completely replace it with a new template AND "backing class" with some Glint because why not:
**my-app/app/components/index.ts**
```ts
import templateOnlyComponent from '@ember/component/template-only';
interface LoadingSignature {
Element: HTMLElement; //
}
const LoadingComponent = templateOnlyComponent();
export default LoadingComponent;
declare module '@glint/environment-ember-loose/registry' {
export default interface Registry {
Loading: typeof LoadingComponent;
}
}
```
**my-app/app/components/index.hbs**
```hbs
```
This does not work and throws the following error:

It does work when using a JS file to overwrite the component:
**my-app/app/components/index.js**
```ts
// I have lost all my Glint stuff, because it's a JS file :'(
import templateOnlyComponent from '@ember/component/template-only';
const LoadingComponent = templateOnlyComponent();
export default LoadingComponent;
```
**my-app/app/components/index.hbs**
```hbs
```
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Reproduziere die Komponentenüberschreibung mit den gezeigten TypeScript- und JavaScript-Dateien my-addon/addon und my-app/app und vergleiche sie anschließend mit der funktionierenden JavaScript-Überschreibung. Verfolge, wie die App-Komponente gegenüber der Komponente des Add-ons aufgelöst wird, und ermittle, warum die TypeScript-Version fehlschlägt. Als abgeschlossen gilt die Aufgabe, wenn eine TypeScript-App-Komponente und ein TypeScript-Template die JavaScript-Komponente des Add-ons ersetzen können und dabei die Glint-Deklarationen erhalten bleiben.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- javascript, typescript
- Bereich
- frontend
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100