“字符串”类型的索引签名仅允许读取

时间:2020-04-12 00:49:57

标签: typescript

当我尝试在指定的索引处更改字符串字符时,我从变量cipher得到了警告。

const emojis: string[] = [/* values */];

function revealOriginEmojis(cipher: string): string {
  for(let i = 0; i < cipher.length; i++){
    let index: number = emojis.indexOf(cipher[i]);

    cipher[i] = emojis[index];
  }

  return cipher;
}

那么,我应该创建一个新的字符串变量还是任何更好的解决方案? 非常感谢

1 个答案:

答案 0 :(得分:6)

stringprimitive value,它是不可变的。

您可以将其转换为字符数组,编辑该数组的某些元素,然后将该数组转换回字符串。

const cipherChars = [...cipher]; // convert into array

cipherChars[2] = 'X'; // alter array

cipher = cipherChars.join(); // convert back into string