我正在使用Contentful CMS API构建Angular4网站以检索数据。 问题是即使控制台显示这些类型,我也无法为返回的数据分配正确的类型。
模拟数据:
export const NAMES: Page[] = content.getEntries({
content_type: 'mainMenu'
}).then(function(response){
response.items.forEach(element => {
return element.fields;
})
});
通过控制台返回(如果使用console.log):
Object { title: "About Aliens" }
Object { title: "Portfolio" }
Object { title: "Meet the team" }
Object { title: "Contact us" }
和我用来分配这些数据类型的类:
export class Page {
title: string;
}
我是Typescript的新手,我想知道我哪里出错了,如果有人指导我,我可以去掌握从任何API返回这些数据,我将不胜感激。
谢谢。
答案 0 :(得分:2)
then
的调用会迭代一个集合但不返回任何内容。如果你想创建/返回一些东西,你可以使用forEach
根据传入的谓词创建一个新的集合。map
。修复:
this
从某个方法中执行getEntries。
export NAMES: IPage[]; // no assignment at this point
<强>的iPage 强>
content.getEntries({
content_type: 'mainMenu'
}).then((response) => {
NAMES = response.items.map(element => element as IPage);
});
答案 1 :(得分:0)
使您的页面类成为类型断言的接口,而无需实例化,如此
export interface Page { title : string }