You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular使用[(ngModel)]双向绑定报TS2339:User类型无username属性如何解决

问题解决方案

报错的核心原因是User类的构造函数参数未声明访问修饰符,你定义的username、firstname等字段仅为构造函数内部的局部参数,不会被自动创建为类的实例属性,因此模板双向绑定时无法识别到对应属性。

你只需要修改User.ts文件,给构造函数的所有参数添加public访问修饰符即可,这是TypeScript的语法糖,添加后会自动将参数映射为类的公开实例属性,修改后代码如下:

export class User{
    constructor(
        public username : string,
        public firstname : string,
        public lastname : string,
        public age : number,
        public password : string
    ){}
}

如果你不想使用语法糖,也可以手动声明类属性后在构造函数内赋值,写法如下:

export class User{
    // 先手动声明类的实例属性
    username: string;
    firstname: string;
    lastname: string;
    age: number;
    password: string;
    constructor(
        username : string,
        firstname : string,
        lastname : string,
        age : number,
        password : string
    ){
        // 构造函数内给实例属性赋值
        this.username = username;
        this.firstname = firstname;
        this.lastname = lastname;
        this.age = age;
        this.password = password;
    }
}

修改完成后重新启动项目编译即可解决报错。你当前项目里的FormsModule已经正确导入,ngModel相关配置没有问题,不需要额外调整其他代码。


内容的提问来源于stack exchange,提问作者arun dalakoti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 23:39:02