参数类型Number | Function不能赋予参数类型Number

时间:2013-06-28 01:08:54

标签: javascript webstorm

var str = name.toUpperCase();
var ch = new Array();
ch = str.split('');

for(var i=0;i<7;i++)
{
  if(ch = null) {
    result_code.replace(
      pos.toString()+pos.toString()+pos.toString()+pos.toString(),
      "FFFF");
  } else {
    var temp = parseInt(ch[i]);
    var temp_integer = 64;
    if(temp<=122 & temp>=97) {
      var pos = i+1;
      result_code.replace(
        pos.toString()+pos.toString()+pos.toString()+pos.toString(),
        (temp - temp_integer)+40);
    }
  }
}

此代码在此行result_code.replace(pos.toString()+pos.toString()+pos.toString()+pos.toString(), (temp - temp_integer)+40);处创建错误。

带下划线的信息是此部分(temp - temp_integer)+40

显示的错误是Argument type Number is not assignable to parameter type String|Function

这段代码有什么问题?我正在使用WebStorm。我可能只是犯了一个愚蠢的错误。提前谢谢!

2 个答案:

答案 0 :(得分:18)

replace方法接受字符串或函数作为第二个参数。将您的值转换为字符串:((temp - temp_integer)+40).toString()

答案 1 :(得分:3)

(temp - temp_integer)+40

是一个数值,replace想要一个字符串。只需使用:

(temp - temp_integer)+40+""

假设您想要数字的字符串表示(例如,65变为"65")。如果您希望代码点上的字符65变为"A"),则应使用String.fromCharCode()