Skip to content

Adding a JSDoc @typedef declaration breaks emitting static getter to ".d.ts" files. #37289

@kbkk

Description

@kbkk

TypeScript Version: 3.9.0-dev.20200309

Search Terms: static get, static get cannot find name

Code

'use strict';

class Handler {
	static get OPTIONS() {
		return 1;
	}

	process() {
	}
}

module.exports = Handler;

/**
 * @typedef {Object} HandlerOptions
 * @property {String} name
 */

Expected behavior:

export = Handler;
declare class Handler {
    static get OPTIONS(): number;
    process(): void;
}
declare namespace Handler {
    export { OPTIONS, HandlerOptions };
}
type HandlerOptions = {
    name: string;
};

Actual behavior:

// Missing `static get OPTIONS` declaration
// And an error is emitted: `TS2304: Cannot find name 'OPTIONS'.`
export = Handler;
declare class Handler {
    process(): void;
}
declare namespace Handler {
    export { OPTIONS, HandlerOptions };
}
type HandlerOptions = {
    name: string;
};

Playground Link: Provided

Metadata

Metadata

Assignees

Labels

BugA bug in TypeScript

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions