在下面的代码中,我想使用ApplicationSettings
变量定义testSettings
类型的形状,以便在useSettings
函数内部IDE知道{{1}上可以访问哪些属性object:
settings
不幸的是,似乎/** @typedef ApplicationSettings */
var testSettings = {
apiService: {},
configuration: {}
};
/**
* @param {ApplicationSettings} settings
*/
function useSettings(settings) {
console.log(settings.apiService); // apiService is not recognized here
console.log(settings.configuration); // same for configuration
}
在这种情况下不是有效的注释。是否有可能告诉WebStorm @typedef
类型应该是什么样子而没有在JSDoc中明确指定它的所有属性?
答案 0 :(得分:0)
为什么你需要@typedef?以下语法有效:
var testSettings = {
apiService: {},
configuration: {}
};
/**
* @param {testSettings} settings
*/
function useSettings(settings) {
console.log(settings.apiService);
console.log(settings.configuration);