将const变量传递给TypeScript中的函数

问题描述 投票:0回答:1

我正在学习TypeScript,并且对它处理const变量的方式感到有些困惑。假设我为数字定义接口为:

interface MyNumber {
    value: number;
}

并创建了一个常量MyNumber

const myNumber: MyNumber = { value: 42 };

我在TypeScript documentation中读到const不会阻止我修改对象的内部状态(前提是该属性不是readonly)。但是,我没想到会编译它:

function setToFive(num: MyNumber) {
    num = {
        value: 5
    }
}

console.log(myNumber);
setToFive(myNumber);
console.log(myNumber);

此代码打印两次42。看起来该函数执行const变量的副本并在其范围内使用该副本。我觉得这有点令人惊讶。有没有办法触发compile-time错误?

typescript const
1个回答
1
投票

您正在将功能参数和重新分配给新对象。您不能将const放在函数参数中。

您正在寻找的是eslint或类似内容。在您的项目上强制采用最佳原则的工具。

您要寻找的规则是no param reassign

© www.soinside.com 2019 - 2024. All rights reserved.