[removed] Different return types

后端 未结 3 617
余生分开走
余生分开走 2021-01-18 01:20

I saw I could return different types from the same function in JavaScript. Is this practice idiomatic or should it be discouraged?

For example:

somef         


        
3条回答
  •  没有蜡笔的小新
    2021-01-18 01:49

    Please note that not only your function returns different types, but might even not return anything:

    somefn({type: 'foo'});  //undefined
    

    Although inconsistent return behavior described above is discouraged, returning different object types is common, although I can't say if it is idiomatic.

    For the sake of readability and maintainability I wouldn't recommend returning completely different objects (like boolean and object literal in your example), but returning object literals with just slightly or even completely different properties is pretty common:

    somefn = function(e) {
    
      switch (e.type) 
      {
        case 'mousedown':
          return {x:10, y:20, down: false};
        case 'mousemove':
          return {x:10, y:20};
        default:
          return {};
      }
    };
    

提交回复
热议问题