我试图将字符串转换为TypeScript中的整数,这是用parseInt
方法完成的。这里是字符串来自和环境变量的问题,所以它的类型是string || undefined
,但parseInt
方法需要类型为string
的参数。如何解决parseInt
方法的错误参数类型的打字错误?自过程。env的类型为string || undefined
。
除了parseInt
,我们还有另一种方法来转换字符串to anumber
+
操作符function parse_using_parseInt(string_as_number: string | undefined) {
if((string_as_number || '').trim()) {
return parseInt((string_as_number || '').trim(), 10);
}
return NaN;
}
function parse_using_plus(string_as_number: string | undefined) {
if((string_as_number || '').trim()) {
return +(string_as_number || '').trim();
}
return NaN;
}
检查示例并选择合适的
说明
"use strict";
function parse_using_parseInt(string_as_number) {
if ((string_as_number || '').trim()) {
return parseInt((string_as_number || '').trim(), 10);
}
return NaN;
}
function parse_using_plus(string_as_number) {
if ((string_as_number || '').trim()) {
return +(string_as_number || '').trim();
}
return NaN;
}
console.log('Using parseInt: ', parse_using_parseInt(undefined));
console.log('Using parseInt: ', parse_using_parseInt("undefined"));
console.log('Using parseInt: ', parse_using_parseInt("123"));
console.log('Using parseInt: ', parse_using_parseInt("123xyz")); //<-- Partially parsed as 123, What is expected for this input
console.log('Using parseInt: ', parse_using_parseInt("xyz123"));
console.log('Using plus: ', parse_using_plus(undefined));
console.log('Using plus: ', parse_using_plus("undefined"));
console.log('Using plus: ', parse_using_plus("123"));
console.log('Using plus: ', parse_using_plus("123xyz")); //<-- This parses as NaN, unlike parseInt
console.log('Using plus: ', parse_using_plus("xyz123"));
你应该使用if语句。
if(value === undefined) return;
return parseInt(value);
这样,您还可以防止可能发生的错误。