如何在Google Closure Compiler中为对象类型指定@param @return?

时间:2016-03-19 21:03:23

标签: javascript google-closure-compiler

在javascript代码中,我有这个功能

class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
  def facebook
    user = User.find_for_facebook_oauth(request.env['omniauth.auth'])

    if user.persisted?
      sign_in_and_redirect user, event: :authentication
      set_flash_message(:notice, :success, kind: 'Facebook') if is_navigational_format?
    else
      session['devise.facebook_data'] = request.env['omniauth.auth']
      redirect_to new_user_registration_url
    end
  end
end

oObjFoo是类型:{&#34; a&#34;:数字,&#34; b&#34;:文字,&#34; c&#34;:bool}

oObjBar是类型:{&#34; c&#34;:数字,&#34; d&#34;:文字}

如何使用google闭包编译器指定@param,@ return以进行更严格的类型检查?

2 个答案:

答案 0 :(得分:2)

/**
 * @param {{a:number, b:string, c: boolean }} oObjFoo
 * @return {{c:number, d:string}}
 */
var foo = function (oObjFoo) {
  // do something
  return oObjBar;
}

请注意,注释必须以双星号开头,以便编译器将其计为JsDoc注释。

答案 1 :(得分:0)

看看JSDoc:

http://usejsdoc.org/tags-param.html

/**
 * @param {Object} oAttributes
 * @param {namespace.extension=} oAttributes.parent DOC-Description
 * @param {jQuery=} oAttributes.$element Optional jQuery-Element
 */