JavaScript黑魔法之静态类型检查

2017-03-15  本文已影响40人  三生石上绛珠草

本文属于读别人代码的心得,本人没有任何原创之处。
js虽是一门动态类型语言,然而轻易即可实现实现静态类型检查

function __BuildStrongTypedFunction(returnType, argumentTypes, func) {    
        return function () {        
                if (argumentTypes.length !== arguments.length) {            
                        throw new Error("The number of arguments does not match.");       
                }        
                for (var i = 0; i < argumentTypes.length; i++) {
                        argumentTypes[i].RequireType(arguments[i]);        
                }
                var returnValue = func.apply(this, arguments);
                returnType.RequireType(returnValue);
                return returnValue;    
        }
}

以下是类型部分的定义

屏幕快照 2016-12-17 22.34.27.png 屏幕快照 2016-12-17 22.35.42.png
上一篇下一篇

猜你喜欢

热点阅读