angular - fel TS2741: Egenskap saknas i typ
I filen models/User.model.ts (se nedan) försökte jag sätta en metod isEqual som visas i koden nedan. Kan någon rätta min kod?
filmodeller/User.model.ts:
export class User {
constructor(
public firstName: string,
public lastName: string,
) {}
isEqual (other : User): boolean {
return other === this;
}
}
fil tjänster/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'
}
];
...
FEL i services/user.service.ts(7,2): fel TS2741: Egenskapen 'isEqual' saknas i typen '{ firstName: string; lastName: string;}' men krävs i typen 'User'.
Svar #1
FEL i services/user.service.ts(7,2): fel TS2741: Egenskapen 'isEqual' saknas i typen '{ firstName: string; lastName: string;}' men krävs i typen 'User'.
Detta beror på att i din klassdefinition har du deklarerat funktionen isEqual, men i din lista över användare har du bara firstName och lastName men inte den associerade funktionen och typen av användare är Users.
{
firstName: 'William',
lastName: 'Jones'
},
Som nämnts i kommentarerna kan du använda new() för att skapa en ny User som också bör inkludera funktionen.
public exampleUser = new User("William", "Jones");
Detta skulle sedan i sin tur kunna användas i en array av Users
public users: Users = [ this.exampleUser ];
Svar #2
Det anger att parametern du tar i funktionen isEqual ska vara av typ eller modell som { firstName: 'John', lastName: 'Doe' }, detta visar att du bara behöver skicka data i detta format.
