我正在尝试导入一个工厂 Typescript 文件,该文件从客户端获取数据并以严格的方式组织它,然后再将其传递给使用 Next.js 的路由创建。
我尝试更改导入和导出文件的方式。我试过import { ContentfulAssetFactory, LandingPageFactory } from './factory';和const factory = require('./factory)。
import { ContentfulAssetFactory, LandingPageFactory } from './factory';
const client = require('./client');
const LANDING_PAGE_CONTENT_TYPE_ID = 'campaignLandingPage';
module.exports = async () => {
const entries = await client.getEntries({
content_type: LANDING_PAGE_CONTENT_TYPE_ID,
});
const linkedAssets = await entries.includes.Asset.map(asset => {
return ContentfulAssetFactory.create(asset.fields)
})
const items = entries.items.map(item => {
return LandingPageFactory.create(item.fields, linkedAssets)
});
return items;
};
class ContentfulAssetFactory {
static create(asset: ContentfulAsset) {
return {
id: asset.id,
contentType: asset.contentType,
url: asset.url,
title: asset.title
}
}
}
}
class LandingPageFactory {
static create(page: LandingPage, assets: Array<ContentfulAsset>) {
const pageImgs = await page.pageImages.map(asset => {
assets.find(item => {
if (item.sys.id === asset.sys.id) {
}
})
})
const lp = {
campaignTitle: page.campaignTitle,
promoCode: page.promoCode,
template: page.template,
ctaPrimary: page.ctaPrimary,
ctaPrimaryButtonText: page.ctaPrimaryButtonText,
ctaPrimaryHyperlink: page.ctaPrimaryHyperlink,
ctaAlt1: page.ctaAlt1,
ctaAlt1Hyperlink: page.ctaAlt1Hyperlink,
ctaAlt1TextColor: page.ctaAlt1TextColor,
ctaAlt1BackgroundColor: page.ctaAlt1BackgroundColor,
pageImages: pageImgs
}
return lp
}
}
export {
ContentfulAsset,
ContentfulAssetFactory,
LandingPage,
LandingPageFactory
}
我希望能够导入或要求打字稿并使用类静态函数。我很困惑为什么我不能要求文件或导入它。SyntaxError 特别令人困惑,我不知道为什么当该语法适用于其他文件时它会抛出该错误。
浮云间
繁花如伊
相关分类