【发布时间】:2018-11-30 17:38:57
【问题描述】:
我今天在处理一个非常小的 JS 文件时注意到,当稍后将变量声明为该类型时,我定义的类型不允许智能感知。事实证明,将 typedef 更改为大写字母可以解决问题。我的类型定义位于文件顶部,该类型的变量位于 IIFE 中。
如果我在 IIFE 中移动类型定义,那么无论类型名称的大小写如何,它都可以工作。但是,将类型定义保留在文件顶部(在 IIFE 之外)并将名称大写也可以使其工作。
它是否记录在大写类型定义使其全局化的任何地方?
编辑:添加几个屏幕截图。用简单的例子来重现这似乎是零星的。
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
})();
【问题讨论】: