Emi*_*dde 5 methods typescript angular angular7
在文件 models/User.model.ts(见下文)中,我尝试设置一个方法 isEqual,如下面的代码所示。有人可以更正我的代码吗?
文件模型/User.model.ts:
export class User {
constructor(
public firstName: string,
public lastName: string,
) {}
isEqual (other : User): boolean {
return other === this;
}
}
Run Code Online (Sandbox Code Playgroud)
文件服务/user.service.ts :
import { User } from '../models/User.model';
import { Subject } from 'rxjs/Subject';
export class UserService {
private users: User[] = [
{
firstName: 'William',
lastName: 'Jones'
},
{
firstName: 'John',
lastName: 'Doe'
}
];
Run Code Online (Sandbox Code Playgroud)
...
services/user.service.ts(7,2) 中的错误:错误 TS2741:类型“{ firstName: string;”中缺少属性“isEqual”;lastName: string;}' 但在类型 'User' 中是必需的。
services/user.service.ts(7,2) 中的错误:错误 TS2741:类型“{firstName: string;”中缺少属性“isEqual”;lastName: string;}' 但在“User”类型中是必需的。
这是因为在类定义中声明了函数isEqual,但在用户列表中只有 和firstName,lastName但没有关联的函数,并且用户类型为Users。
{
firstName: 'William',
lastName: 'Jones'
},
Run Code Online (Sandbox Code Playgroud)
正如评论中提到的,您可以使用 来new ()创建一个新的User,其中也应该包含该功能。
public exampleUser = new User("William", "Jones");
Run Code Online (Sandbox Code Playgroud)
然后这可以依次用于一系列Users
public users: Users = [ this.exampleUser ];
Run Code Online (Sandbox Code Playgroud)