【问题标题】:VS Code @typedef capitalizationVS Code @typedef 大写
【发布时间】:2018-11-30 17:38:57
【问题描述】:

我今天在处理一个非常小的 JS 文件时注意到,当稍后将变量声明为该类型时,我定义的类型不允许智能感知。事实证明,将 typedef 更改为大写字母可以解决问题。我的类型定义位于文件顶部,该类型的变量位于 IIFE 中。

如果我在 IIFE 中移动类型定义,那么无论类型名称的大小写如何,它都可以工作。但是,将类型定义保留在文件顶部(在 IIFE 之外)并将名称大写也可以使其工作。

它是否记录在大写类型定义使其全局化的任何地方?

编辑:添加几个屏幕截图。用简单的例子来重现这似乎是零星的。

Non-working
Working

EDIT_2:这似乎与有一个与类型定义同名的变量有关。

/**
 * An object that stores all the necessary contextual data
 * Defined inside the HTML file loaded for the alert
 * @typedef {Object} Test
 * @prop {Number} personId person_id of the patient
 */

(function() {
    /** @type {Test} */
    const Test = window.Test;
    Test
})();

【问题讨论】:

    标签: visual-studio-code jsdoc


    【解决方案1】:

    您应该将@typedef 视为一个变量——一个仅在您的类型声明中可用的变量。

    这意味着您可以在本地范围内覆盖该变量,这样它就意味着其他的东西。

    这正是你在这里所做的。

    【讨论】:

    • 感谢您的回复!您能否提供一个我的修改示例来说明我应该如何使用它?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-07
    • 2021-11-18
    相关资源
    最近更新 更多