tests/cases/conformance/jsdoc/declarations/index.js(4,16): error TS8004: Type parameter declarations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(5,12): error TS8010: Type annotations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(8,16): error TS8004: Type parameter declarations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(8,29): error TS8011: Type arguments can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(9,12): error TS8010: Type annotations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(13,11): error TS8010: Type annotations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(19,11): error TS8010: Type annotations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(23,11): error TS8010: Type annotations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(27,11): error TS8010: Type annotations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(28,11): error TS8010: Type annotations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(32,11): error TS8010: Type annotations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(39,11): error TS8010: Type annotations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(43,11): error TS8010: Type annotations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(47,11): error TS8010: Type annotations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(48,11): error TS8010: Type annotations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(52,11): error TS8010: Type annotations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(53,11): error TS8010: Type annotations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(59,11): error TS8010: Type annotations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(63,11): error TS8010: Type annotations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(67,11): error TS8010: Type annotations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(68,11): error TS8010: Type annotations can only be used in TypeScript files. ==== tests/cases/conformance/jsdoc/declarations/index.js (21 errors) ==== // Pretty much all of this should be an error, (since index signatures and generics are forbidden in js), // but we should be able to synthesize declarations from the symbols regardless export class M { ~ !!! error TS8004: Type parameter declarations can only be used in TypeScript files. field: T; ~ !!! error TS8010: Type annotations can only be used in TypeScript files. } export class N extends M { ~ !!! error TS8004: Type parameter declarations can only be used in TypeScript files. ~ !!! error TS8011: Type arguments can only be used in TypeScript files. other: U; ~ !!! error TS8010: Type annotations can only be used in TypeScript files. } export class O { [idx: string]: string; ~~~~~~ !!! error TS8010: Type annotations can only be used in TypeScript files. } export class P extends O {} export class Q extends O { [idx: string]: "ok"; ~~~~~~ !!! error TS8010: Type annotations can only be used in TypeScript files. } export class R extends O { [idx: number]: "ok"; ~~~~~~ !!! error TS8010: Type annotations can only be used in TypeScript files. } export class S extends O { [idx: string]: "ok"; ~~~~~~ !!! error TS8010: Type annotations can only be used in TypeScript files. [idx: number]: never; ~~~~~~ !!! error TS8010: Type annotations can only be used in TypeScript files. } export class T { [idx: number]: string; ~~~~~~ !!! error TS8010: Type annotations can only be used in TypeScript files. } export class U extends T {} export class V extends T { [idx: string]: string; ~~~~~~ !!! error TS8010: Type annotations can only be used in TypeScript files. } export class W extends T { [idx: number]: "ok"; ~~~~~~ !!! error TS8010: Type annotations can only be used in TypeScript files. } export class X extends T { [idx: string]: string; ~~~~~~ !!! error TS8010: Type annotations can only be used in TypeScript files. [idx: number]: "ok"; ~~~~~~ !!! error TS8010: Type annotations can only be used in TypeScript files. } export class Y { [idx: string]: {x: number}; ~~~~~~ !!! error TS8010: Type annotations can only be used in TypeScript files. [idx: number]: {x: number, y: number}; ~~~~~~ !!! error TS8010: Type annotations can only be used in TypeScript files. } export class Z extends Y {} export class AA extends Y { [idx: string]: {x: number, y: number}; ~~~~~~ !!! error TS8010: Type annotations can only be used in TypeScript files. } export class BB extends Y { [idx: number]: {x: 0, y: 0}; ~~~~~~ !!! error TS8010: Type annotations can only be used in TypeScript files. } export class CC extends Y { [idx: string]: {x: number, y: number}; ~~~~~~ !!! error TS8010: Type annotations can only be used in TypeScript files. [idx: number]: {x: 0, y: 0}; ~~~~~~ !!! error TS8010: Type annotations can only be used in TypeScript files. }