说实话,我不知道要对我的案例提出什么要求,所以我只是添加一些细节。我是java出身,所以对类比较熟悉。
让我们以一个类为例,为了简单起见,将私有(private)字段改为公共(public)字段,并且没有 getter 和 setter
class User{
public String name;
public String email;
}
这在某些情况下很有用,例如有一组用户,然后我可以使用类似的东西:
for(User user: usersList){
user.name='some new value'
//since user is a class, code assist, suggests the name and also if I have user.namee it throws an error
}
现在转向 JavaScript,我可以获得一个数组并执行类似的操作
for (let user of usersList){
user.name='some new value'
//however if I type user.nammee no error is thrown and code assist does not know what to recomment
}
我想现在你可能明白了。我希望它能够更轻松地通过代码辅助正确获取对象字段,并避免由于属性名称键入错误而导致键入错误。据我所知,Javascript 类只有方法...那么在这种情况下我可以应用什么?
最佳答案
查看 Typescript
和this "fiddle" on the TypeScript Playground
class User {
constructor(public name: string, public email: string = "") { }
/*
//shorthand for
public name: string;
public email: string;
constructor(name:string, email:string="") {
this.name = name;
this.email = email;
}
*/
}
var usersList = [
new User("Jack"),
new User("Jill"),
new User("Joe")
];
for (let user of usersList) {
user.email = user.name + "@mail.com";
}
由于 userList
被识别为 User[]
类型,因此 let user
也被键入为 let user:User
关于javascript - 在 Node.js 的 for 循环中使用类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45461420/