tests/cases/conformance/jsdoc/declarations/index.js(4,18): error TS8006: 'interface' declarations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(6,18): error TS8006: 'interface' declarations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(10,18): error TS8006: 'interface' declarations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(31,11): error TS8006: 'interface' declarations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(33,10): error TS18043: Types cannot appear in export declarations in JavaScript files. tests/cases/conformance/jsdoc/declarations/index.js(35,11): error TS8006: 'interface' declarations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(37,10): error TS18043: Types cannot appear in export declarations in JavaScript files. tests/cases/conformance/jsdoc/declarations/index.js(39,18): error TS8006: 'interface' declarations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(40,10): error TS18043: Types cannot appear in export declarations in JavaScript files. tests/cases/conformance/jsdoc/declarations/index.js(42,10): error TS18043: Types cannot appear in export declarations in JavaScript files. tests/cases/conformance/jsdoc/declarations/index.js(43,18): error TS8006: 'interface' declarations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(45,18): error TS8006: 'interface' declarations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(49,18): error TS8006: 'interface' declarations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(53,18): error TS8006: 'interface' declarations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(57,18): error TS8006: 'interface' declarations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(61,18): error TS8006: 'interface' declarations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(65,18): error TS8006: 'interface' declarations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(67,18): error TS8006: 'interface' declarations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(71,18): error TS8006: 'interface' declarations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(75,18): error TS8006: 'interface' declarations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(80,18): error TS8006: 'interface' declarations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(84,18): error TS8006: 'interface' declarations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(87,18): error TS8006: 'interface' declarations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(91,18): error TS8006: 'interface' declarations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(95,18): error TS8006: 'interface' declarations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(100,18): error TS8006: 'interface' declarations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(105,18): error TS8006: 'interface' declarations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(107,18): error TS8006: 'interface' declarations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(111,18): error TS8006: 'interface' declarations can only be used in TypeScript files. tests/cases/conformance/jsdoc/declarations/index.js(115,18): error TS8006: 'interface' declarations can only be used in TypeScript files. ==== tests/cases/conformance/jsdoc/declarations/index.js (30 errors) ==== // Pretty much all of this should be an error, (since interfaces are forbidden in js), // but we should be able to synthesize declarations from the symbols regardless export interface A {} ~ !!! error TS8006: 'interface' declarations can only be used in TypeScript files. export interface B { ~ !!! error TS8006: 'interface' declarations can only be used in TypeScript files. cat: string; } export interface C { ~ !!! error TS8006: 'interface' declarations can only be used in TypeScript files. field: T & U; optionalField?: T; readonly readonlyField: T & U; readonly readonlyOptionalField?: U; (): number; (x: T): U; (x: Q): T & Q; new (): string; new (x: T): U; new (x: Q): T & Q; method(): number; method(a: T & Q): Q & number; method(a?: number): number; method(...args: any[]): number; optMethod?(): number; } interface G {} ~ !!! error TS8006: 'interface' declarations can only be used in TypeScript files. export { G }; ~ !!! error TS18043: Types cannot appear in export declarations in JavaScript files. interface HH {} ~~ !!! error TS8006: 'interface' declarations can only be used in TypeScript files. export { HH as H }; ~~ !!! error TS18043: Types cannot appear in export declarations in JavaScript files. export interface I {} ~ !!! error TS8006: 'interface' declarations can only be used in TypeScript files. export { I as II }; ~ !!! error TS18043: Types cannot appear in export declarations in JavaScript files. export { J as JJ }; ~ !!! error TS18043: Types cannot appear in export declarations in JavaScript files. export interface J {} ~ !!! error TS8006: 'interface' declarations can only be used in TypeScript files. export interface K extends I,J { ~ !!! error TS8006: 'interface' declarations can only be used in TypeScript files. x: string; } export interface L extends K { ~ !!! error TS8006: 'interface' declarations can only be used in TypeScript files. y: string; } export interface M { ~ !!! error TS8006: 'interface' declarations can only be used in TypeScript files. field: T; } export interface N extends M { ~ !!! error TS8006: 'interface' declarations can only be used in TypeScript files. other: U; } export interface O { ~ !!! error TS8006: 'interface' declarations can only be used in TypeScript files. [idx: string]: string; } export interface P extends O {} ~ !!! error TS8006: 'interface' declarations can only be used in TypeScript files. export interface Q extends O { ~ !!! error TS8006: 'interface' declarations can only be used in TypeScript files. [idx: string]: "ok"; } export interface R extends O { ~ !!! error TS8006: 'interface' declarations can only be used in TypeScript files. [idx: number]: "ok"; } export interface S extends O { ~ !!! error TS8006: 'interface' declarations can only be used in TypeScript files. [idx: string]: "ok"; [idx: number]: never; } export interface T { ~ !!! error TS8006: 'interface' declarations can only be used in TypeScript files. [idx: number]: string; } export interface U extends T {} ~ !!! error TS8006: 'interface' declarations can only be used in TypeScript files. export interface V extends T { ~ !!! error TS8006: 'interface' declarations can only be used in TypeScript files. [idx: string]: string; } export interface W extends T { ~ !!! error TS8006: 'interface' declarations can only be used in TypeScript files. [idx: number]: "ok"; } export interface X extends T { ~ !!! error TS8006: 'interface' declarations can only be used in TypeScript files. [idx: string]: string; [idx: number]: "ok"; } export interface Y { ~ !!! error TS8006: 'interface' declarations can only be used in TypeScript files. [idx: string]: {x: number}; [idx: number]: {x: number, y: number}; } export interface Z extends Y {} ~ !!! error TS8006: 'interface' declarations can only be used in TypeScript files. export interface AA extends Y { ~~ !!! error TS8006: 'interface' declarations can only be used in TypeScript files. [idx: string]: {x: number, y: number}; } export interface BB extends Y { ~~ !!! error TS8006: 'interface' declarations can only be used in TypeScript files. [idx: number]: {x: 0, y: 0}; } export interface CC extends Y { ~~ !!! error TS8006: 'interface' declarations can only be used in TypeScript files. [idx: string]: {x: number, y: number}; [idx: number]: {x: 0, y: 0}; }