Microsoft/TypeScript

Intellisense behaviour of functions and parameters

Open

#3,520 opened on Jun 16, 2015

View on GitHub
 (4 comments) (0 reactions) (0 assignees)TypeScript (6,726 forks)batch import
Experience EnhancementHelp WantedSuggestionVS Code Tracked

Repository metrics

Stars
 (48,455 stars)
PR merge metrics
 (Avg merge 6d 17h) (9 merged PRs in 30d)

Description

Some odd/unintuitive Intellisense behaviour:

/**
 * Function description A
 * @param name Parameter description A
 */
function uniqueName(name: string): string {
}

export const Uid = {
    /**
     * Function description B
     * @param name Parameter description B
     */
    uniqueName
};

The intellisense description for the 'Uid.uniqueName' property is now description B, however the intellisense for the parameter is description A. There isn't anything overriding here - the description of the function is always taken from the export, and the parameter description is always taken from the function definition. As such, I need to do the following to get full intellisense support for this pattern:

/**
 * @param name Parameter description
 */
function uniqueName(name: string): string {
}

export const Uid = {
    /**
     * Function description
     */
    uniqueName
};

i.e. function definitions in one place, parameter definitions in another place. I know I can work around this by restructuring the code, but it still feels like I should be able to achieve it in the above format.

Contributor guide