gpt4 book ai didi

javascript - Typescript 体内参数变量的重复初始化

转载 作者:行者123 更新时间:2023-12-02 23:15:05 25 4
gpt4 key购买 nike

Typescript 据说是一种面向对象的 javascript 形式,允许类型安全继承等。但为什么它不阻止在方法体内声明与其参数相同的名称变量。

这可能会产生很大的问题,特别是当用户忘记并声明一个与其参数同名的变量时,这会导致覆盖并丢失存储在该变量中的先前值。

typescript 示例:

function greeter(person : Person,b="") {

var b = "3";

//No warning in this case
}

C# 示例:

public  void greeter(Person person ,string b="")
{

string b = "3";

//Error A local parameter name cannot be declare in sc
}

请帮忙,或者告诉我有什么方法可以避免 Typescript 中出现这种情况吗?

最佳答案

虽然这适用于 var,但如果使用 letconst 则不允许这样做。例如。这不会编译:

function greeter(person: Person, b = "") {
const b = "3";
// Error: Duplicate identifier 'b'
}

一般来说,由于许多类似的原因,许多 JS 社区正在放弃 var,而使用 letconst 将会给出你有很多额外的安全。

如果您想强制执行此操作,可以使用 tslint 的 linting 规则。和 eslint .

或者,应该可以编写自己的自定义 linting 规则来禁止使用 var ,但这将需要更多的工作,并且使用 letconst 无论如何都有 many other benefits

关于javascript - Typescript 体内参数变量的重复初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57196965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com