我有一个PostService和BlogPost,喜欢在我的html站点中使用url参数查看帖子。
本服务是:
export class PostService {
posts = [
{
id: '1',
title: 'this title',
url: 'this-title',
body: 'this body'
}
]
constructor() {
const local_posts = localStorage.getItem('posts');
if (local_posts) {
this.posts = JSON.parse(local_posts);
} else {
localStorage.setItem('posts', JSON.stringify(this.posts));
}
}
getList() {
return this.posts;
}
get(id: string) {
return { ...this.posts.find(p => p.id === id) };
}
getBy(url?: string) {
return { ...this.posts.find(p => p.url === url) };
}
}
而在我的博客我有错误:
成员"post"隐式具有"any"类型
export class BlogPostComponent implements OnInit {
post; // Here is the problem
constructor(private route: ActivatedRoute, private router: Router, private postService: PostService) { }
ngOnInit() {
this.route.params.subscribe(params => {
this.post = this.postService.getBy(params['url'])
if (!this.post.id) {
this.router.navigate(['/not-found-page']);
}
})
}
}
我试着设定
post = new Array;
或
post = new Object;
但这行不通。
你有办法吗?
我现在添加了"noImplicitAny":但我认为这只是解决此问题的第二种方法。
1条答案
按热度按时间vhipe2zx1#
定义
BlogPost
接口并将属性定义为
BlogPost
类型并重构服务以使用
BlogPost
接口