javascript - 在 Node.js 的 for 循环中使用类

标签 javascript node.js

说实话,我不知道要对我的案例提出什么要求,所以我只是添加一些细节。我是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/

相关文章:

node.js - Elastic Beanstalk 部署失败、权限被拒绝、mkdir

database - 如何在 sails.js 中初始化数据库?

javascript - 为什么现在越来越多的人使用脚本来分配事件处理程序而不是从 html 元素中分配事件?

javascript - 类型 ORM QueryFailedError PostgreSQL

javascript - 重新启动 bitcoind 守护进程,以防 Node.js 代码崩溃

javascript - 使用 AJAX 时 Passport + Express4 未通过身份验证

node.js - 覆盖 Jade 中的风格?

node.js - Loopback.io 的 ACL 问题

javascript - 为 map 元素设置innerHTML

javascript - Typescript 组件中的“this”与 Angular2 中的 ES5