问题类型:功能请求
Intellisense在其他文件中使用@typedef标记,但仅当该文件在当前窗口中打开时才使用。请允许在当前工作目录中使用任何typedef标记,即使包含typedef的文件未打开。
下面是我的意思。我用类型注解了一个变量。这个变量直接用module. exports导出。
我的typedef在单独的文件中。
Configuration.js
/**
* @typedef {Object} ConfigurationInputDirectories
* @property {string} modules
* @property {string} layoutModules
* @property {string} standaloneScripts
* @property {string} standaloneStyles
* @property {string} libraryScripts
* @property {string} libraryStyles
* @property {string} markupTemplates
*/
/**
* @typedef {Object} ConfigurationOutputDirectories
* @property {string} pageScripts
* @property {string} vendorScripts
* @property {string} standaloneScripts
* @property {string} pageStyles
* @property {string} vendorStyles
* @property {string} standaloneStyles
* @property {string} markupFiles
*/
/**
* @typedef {Object} ConfigurationVendor
* @property {string} standardPath
* @property {string} minPath
*/
/**
* @typedef {Object} ConfigurationModule
* @property {string} layoutModule
* @property {string} markupTemplate
* @property {string[]} includeStandaloneScripts
* @property {string[]} includeStandaloneStyles
* @property {string[]} includeVendorScripts
* @property {string[]} includeVendorStyles
* @property {string[]} excludeStandaloneScripts
* @property {string[]} excludeStandaloneStyles
* @property {string[]} excludeVendorScripts
* @property {string[]} excludeVendorStyles
*/
/**
* @typedef {Object} ConfigurationLayoutModule
* @property {string} layoutModule
* @property {string} markupTemplate
* @property {string[]} includeStandaloneScripts
* @property {string[]} includeStandaloneStyles
* @property {string[]} includeVendorScripts
* @property {string[]} includeVendorStyles
* @property {string[]} excludeStandaloneScripts
* @property {string[]} excludeStandaloneStyles
* @property {string[]} excludeVendorScripts
* @property {string[]} excludeVendorStyles
*/
/**
* Represents configuration object for build process.
* @typedef {Object} Configuration
* @property {ConfigurationInputDirectories} inputDirectories
* @property {ConfigurationOutputDirectories} outputDirectories
* @property {Object.<string,ConfigurationVendor} vendorScripts
* @property {Object.<string,ConfigurationVendor>} vendorStyles
* @property {Object.<string,ConfigurationModule>} modules
* @property {Object.<string,ConfigurationLayoutModule>} layoutModules
* @property {string} defaultMarkupTemplate
* @property {string} contentPlaceHolder
* @property {string} nameDirectorySeperator
* @property {string[]} validLibraryEntryFileNames
* @property {string} moduleFileName
* @property {string} rootModuleFileName
* @property {string} systemjsPath
* @property {string} systemjsNamedRegistersPath
*/
当打开包含类型定义的此文件时,intellisense/语言服务/或您调用的任何服务都会识别此变量的类型,并且intellisense会在使用此配置变量时显示成员。但当关闭文件时,其类型会变为any。即使关闭包含标记的文件,也可以从typedef标记中查看类型信息。
VS代码版本:代码1.33.0(2019年4月4日15:14:28.026Z,日期:2019年4月4日)
操作系统版本:Windows NT 10.0.17134
2条答案
按热度按时间ajsxfq5m1#
如果启用了
"javascript.implicitProjectConfig.checkJs": true
,这也会影响到一些东西。如果关闭了带有typedefs的文件,红色的错误会出现在我引用它们的文件中。qkf9rpyu2#
我也希望看到这个问题得到解决。如果有解决办法,请联系。