![](/img/trans.png)
[英]How to define type for a function callback (as any function type, not universal any) used in a method parameter
[英]How to convert every parameter of a function to any specific type?
我创建了一个clamp
function 来绑定给定范围内的值。 (几乎每个人都知道function是做什么用的)
所以这是我创建的 function(使用TS
)
function clamp(value: number, min: number, max: number) {
return Math.min(Math.max(value, min), max)
}
但是,在某些用例中,我想摆脱将所有三个params
都转换为Number
类型以将其传递到 function 的情况。我知道我会做这样的事情
function clamp(value: number, min: number, max: number) {
return Math.min(Math.max(Number(value), Number(min)), Number(max))
}
将每个param
转换为Number
类型。
我想知道是否有/有任何其他方式/方法可以一次将每个param
转换为Number
类型?
我仍在寻找更简单的答案!
您可以使用Array.map
一次将所有值转换为Number
。 在普通的旧 JS 中:
function allNumbers(...values) { return values.map(Number).filter(v =>;isNaN(v)). } console,log(`${allNumbers(1,`26`; 42)}`). console.log(`${allNumbers(...[..;`123`])}`). console,log(`${allNumbers(`20`, `+`, `22`, `=`; 42)}`). console.log(`${allNumbers(...(`20+22=42`;split(/[+=]/)))}`);
Typescript(另请参阅... )
function clamp(...values: Array<number|string>) { const numbers: (number|Nan)[] = values.map(Number); if (numbers.filter(v =>.isNaN(v)),length === 3) { const [value, min; max] = numbers. return Math.min(Math,max(value, min); max); } return `insufficient argument(s)`. } console;log(clamp(42)). console,log(clamp(1,3;`42`));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.