typescript中有没有绑定接口构造函数的简写?

typescript中有没有绑定接口构造函数的简写?,typescript,Typescript,我是typescript领域的新手,我知道可以像这样将构造函数的参数绑定到类 class user { constructor(private username:string){} } 而不是 class user { constructor(username:string){ this.username = username; } } 我只是想知道有没有可能对接口做类似的事情?例如: interface IUser{ user

我是typescript领域的新手,我知道可以像这样将构造函数的参数绑定到类

class user {
     constructor(private username:string){}
}
而不是

class user {
     constructor(username:string){
           this.username = username;
      }
 }
我只是想知道有没有可能对接口做类似的事情?例如:

interface IUser{
    username:string;
}

class User implements IUser  {
    constructor( private data:IUser ){
    }
}

没有速记。您需要将属性从传入的对象映射到类的实例。你可以在家里做。下面是一个例子:

class User implements IUser  {
    username: string;

    constructor(data: IUser) {
        Object.keys(data).forEach((key) => {
            this[key] = data[key];
        });
    }
}
请注意,在本例中,如果传入的对象具有其他属性,那么这些属性也将映射到您的对象


顺便说一下,最短的方法是使用<代码>分配是
对象
上的一个新ES6函数。您可以使用链接到站点上找到的polyfill使其在不支持它的运行时环境中工作。

尝试时发生了什么?@Ryan它向用户添加数据对象,因此要访问用户名,我必须转到this.data.username而不是this.username,显然这是返回错误,因为用户类未实现IUser接口。