- I am trying to build expense entry app from this tutorial https://www.tutorialspoint.com/angular8/angular8_pdf_version.htm page 33.
I am getting this error – Property ‘expenseEntry’ does not exist on type ‘ExpenseEntryComponent’. i have tried this links
a) Angular error TS2339 Property does not exist on type
b) Angular – How to fix ‘property does not exist on type’ error?
but i didnt get it clearly
- my expense-entry.ts file
JavaScript
x
34
34
1
import { Component } from "@angular/core";
2
import { OnInit } from "@angular/core";
3
4
export interface ExpenseEntry {
5
id: number;
6
item: string;
7
amount: number;
8
category: string;
9
location: string;
10
spendOn: Date;
11
createdOn: Date;
12
}
13
@Component({
14
template: ''
15
})
16
export class ExpenseEntryComponent implements OnInit{
17
title: string;
18
expenseEntry: ExpenseEntry;
19
constructor(){ }
20
21
ngOnInit(){
22
this.title = "Expense Entry";
23
this.expenseEntry = {
24
id: 1,
25
item: "Pizza",
26
amount: 21,
27
category: "Food",
28
location: "Zomato",
29
spendOn: new Date(2020, 6, 1, 10, 10, 10),
30
createdOn: new Date(2020, 6, 1, 10, 10, 10),
31
};
32
33
}
34
}
- expense-entry.component.ts file is here
JavaScript
1
18
18
1
import { Component, OnInit } from '@angular/core';
2
import {ExpenseEntry} from '../../app/expense-entry/expense-entry'
3
4
@Component({
5
selector: 'app-expense-entry',
6
templateUrl: './expense-entry.component.html',
7
styleUrls: ['./expense-entry.component.css']
8
})
9
export class ExpenseEntryComponent implements OnInit {
10
title: string | undefined;
11
constructor() { }
12
13
ngOnInit(): void {
14
this.title = "Expense Entry";
15
}
16
17
18
}
- my expense-entry.component.html file
JavaScript
1
36
36
1
<!------------------content------->
2
<div class="container">
3
<div class="row">
4
<div class="col-lg-12 text-center" style="padding-top: 20px;">
5
<div class="container" style="padding-left: 0px; padding-right:0px;">
6
<div class="row">
7
<div class="col-sm" style="text-align: left;">{{title}} </div>
8
<div class="col-sm" style="text-align: right;"> <button type="button" class="btn btn-primary">Edit</button>
9
</div>
10
</div>
11
</div>
12
<div class="container box" style="margin-top: 10px;">
13
<div class="row">
14
<div class="col-2" style="text-align: right;"> <strong><em>Item :</em></strong></div>
15
<div class="col" style="text-align: left;">{{expenseEntry.item}}</div>
16
</div>
17
<div class="row">
18
<div class="col-2" style="text-align: right;"> <strong><em>Amount :</em></strong></div>
19
<div class="col" style="text-align: left;">{{expenseEntry.amount}}</div>
20
</div>
21
<div class="row">
22
<div class="col-2" style="text-align: right;"> <strong><em>Category :</em></strong></div>
23
<div class="col" style="text-align: left;"> food</div>
24
</div>
25
<div class="row">
26
<div class="col-2" style="text-align: right;"> <strong><em>Location :</em></strong></div>
27
<div class="col" style="text-align: left;">{{expenseEntry.location}}</div>
28
</div>
29
<div class="row">
30
<div class="col-2" style="text-align: right;"> <strong><em>Spend on :</em></strong></div>
31
<div class="col" style="text-align: left;">{{expenseEntry.spendOn}} </div>
32
</div>
33
</div>
34
</div>
35
</div>
36
</div>
- when i insert {{expenseentry.item}} it shows error. i tried restarting the server but didnt work
Advertisement
Answer
expense-entry.ts will only export interface. You have created two components with same name.
expense-entry.ts :
JavaScript
1
10
10
1
export interface ExpenseEntry {
2
id: number;
3
item: string;
4
amount: number;
5
category: string;
6
location: string;
7
spendOn: Date;
8
createdOn: Date;
9
}
10
Then in your ExpenseEntryComponent.ts you need to import above interface as below:
JavaScript
1
27
27
1
import { ExpenseEntry } from '../expense-entry';
2
3
@Component({
4
selector: 'app-expense-entry',
5
templateUrl: './expense-entry.component.html',
6
styleUrls: ['./expense-entry.component.css']
7
})
8
9
export class ExpenseEntryComponent implements OnInit {
10
11
title: string;
12
expenseEntry: ExpenseEntry;
13
constructor() { }
14
15
ngOnInit() {
16
this.title = "Expense Entry";
17
this.expenseEntry = {
18
id: 1,
19
item: "Pizza",
20
amount: 21,
21
category: "Food",
22
location: "Zomato",
23
spendOn: new Date(2020, 6, 1, 10, 10, 10), createdOn: new Date(2020, 6, 1, 10, 10, 10),
24
};
25
}
26
}
27