// a readonly parameter promises not to mutate the argument
function sum(v: readonly number[]): number {
// v.push(0) would be a type error
return v.reduce((acc, x) => acc + x, 0);
}
const nums = [1, 2, 3];
console.log(sum(nums), nums.length);readonly T[] documents no mutation