我今天在处理一个非常小的JS文件时注意到,当稍后声明变量为该类型时,我定义的类型不允许intellisense。结果是,将Turns更改为大写字母可以解决这个问题。我的类型定义位于文件的顶部,而该类型的变量在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
})();
发布于 2018-11-30 09:38:57
您应该将@typedef
视为一个变量--一个只在类型声明中可用的变量。
这意味着您可以在本地作用域中覆盖该变量,因此它意味着其他的内容。
这正是你在这里要做的。
https://stackoverflow.com/questions/53419297
复制相似问题