While it is technically correct to assign to parameters from within function bodies, doing so before the parameter value is read is likely a bug. Instead, initial values of parameters, caught exceptions, and foreach parameters should be, if not treated as read-only, then at least read before reassignment.
function doTheThing(str : string, i: number, strings: string[]) {
str = i.toString(); // Noncompliant
for (let s in strings) {
s = "hello world" + str; // Noncompliant
console.log(s);
}
}