microsoft / microsoft/TypeScript
importing merged declorations in js files
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.3k
- Ø Merge
- 2 T. 4 Std.
- Gemergte PRs (30 T.)
- 132
Beschreibung
### 🔎 Search Terms
is a type and cannot be imported in JavaScript files;
JSDoc;
Import;
Declaration Merging.
### 🕗 Version & Regression Information
- This is the behavior in every version I tried (v5.8.3 - Nightly)
### 💻 Code
```ts
// @filename: foo.impl.js
/**
* @import { Foo } from "./foo.js"
*/
/**
* @returns { Foo }
*/
export function alloc() {
return {
prop1: 42,
prop2: "lorem ipsum"
}
}
// @filename: foo.js
export * as Foo from "./foo.impl.js"
/**
* @typedef Foo
* @prop { number } prop1
* @prop { string } prop2
*/
// @filename: index.js
import { Foo } from "./foo.js"
// ^^^ 'Foo' is a type and cannot be imported in JavaScript files. Use 'import("./foo.js").Foo' in a JSDoc type annotation.ts(18042)
const foo = Foo.alloc();
```
### 🙁 Actual behavior
tsc/lsp emmits error
### 🙂 Expected behavior
no error
### Additional information about the issue
same example works fine using ts files
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Reproduziere das Beispiel mit foo.impl.js, foo.js und index.js unter Verwendung von tsc oder des language service, verfolge dann die Diagnose für den Import von Foo und vergleiche sie mit dem funktionierenden TypeScript-file-Fall. Als erledigt gilt dies, wenn das JavaScript-Beispiel keinen Importfehler meldet und Foo.alloc() weiterhin verwendbar ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- javascript, typescript
- Bereich
- compilers
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100