web-dev-qa-db-ja.com

引数タイプNumberは、パラメータータイプString | Functionに割り当てることができません

_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を使用しています。私はおそらくばかげた間違いをしているだけです。前もって感謝します!

11
Chris

replaceメソッドは、2番目のパラメーターとして文字列または関数を受け入れます。値を文字列に変換します:((temp - temp_integer)+40).toString()

19
Guffa
_(temp - temp_integer)+40
_

数値であり、replaceには文字列が必要です。ただ使用する:

_(temp - temp_integer)+40+""
_

数値の文字列表現が必要であると想定します(たとえば、_65_は_"65"_になります)。そのコードポイントで文字が必要な場合(_65_は_"A"_になります)、 String.fromCharCode()の使用を検討する必要があります

3
paxdiablo