Open
Description
Let a node.js JavaScript (cjs) module:
// global .d.ts
declare class FooTS { tsProp: string; }
// xxx.js
// Goal: let intellisense treat class Foo's 'this' to fake class FooTS
// /** @this {FooTS} */ => currently this is invalid
class Foo {
/** @this {FooTS} */
constructor() { this.jsProp = 123; };
/** @this {FooTS} */
bar() { return this.tsProp; }
}
@this
works for class methods, but it is verbose to add @this
to every method.
It would be a QoL improvement to allow @this
apply to JavaScript class with the effect that it apply @this
to every non-static method.
This is probably invalid in original JSDoc, and doesn't make much sense.
But in vscode, it makes sense because user can use Typescript .d.ts for (more powerful and less verbose) type declaration for JavaScript implementation.
Alternatively, a more aggressive QoL could be that introduce a new tag to treat Foo
type as FooTS
type globally.
Metadata
Metadata
Assignees
Labels
No labels