Skip to content

In JS, typedef tags are not bound on non-expression statements #25252

@sandersn

Description

@sandersn
/** @typedef {number} A */
var ok;
/** @typedef {number} B */
ok = 1; // also ok
/** @typedef {number} C not ok */
;
/** @typedef {number} D not ok */
if (ok) {
}
/** @type {[A, B, C, D]} */
var t = [1,2,3,4]

Expected behavior:
All of A, B, C, and D are type aliases for number.

Actual behavior:
Cannot find name 'C' and 'D'.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Awaiting More FeedbackThis means we'd like to hear from more people who would be helped by this featureDomain: JavaScriptThe issue relates to JavaScript specificallySuggestionAn idea for TypeScript

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions