/** * 对输入的值进行匹配,如果相同则返回对应的值 * * switcher = { 1:"a", * String:"I am string", * Number:"I am number", * Function:()=>{ return "I am function" }, * Object:"I am object", * Array:"I am array", * Boolean:"I am boolean", * StringArray:"I am string array", * NumberArray:"I am number array", * BooleanArray:"I am boolean array", * * } * * switchValue(1,switcher) // == "a" * * switchValue("1",switcher) // == "I am string", * * switchValue(Symbol(),switcher,{defaultValue:1}) // == 1 * * 也可以指定类型匹配器 * * switchValue(new User(),{ * User: (value)=> user.name * },{ * typeMatchers:{ * User: (value)=> value instanceof User * } * ) * */ interface SwitchValueOptions { typeMatchers?: Record; defaultValue?: any; } declare function switchValue(value: T, switchers: Record, options?: SwitchValueOptions): any; export { type SwitchValueOptions, switchValue };