gpt4 book ai didi

Angular 11 和 PdfMake。错误 TS2345 : Argument of type {. ..} 不可分配给 TDocumentDefinitions 类型的参数

转载 作者:行者123 更新时间:2023-12-05 09:33:46 25 4
gpt4 key购买 nike

我正在尝试根据 Angular 11 应用程序中 pdfMake 的官方文档来定义 pdf 文档结构。但是收到错误:

error TS2345: Argument of type '{ pageSize: string; pageOrientation: string; content: ({ text: string; style: string; fontSize?: undefined; } | { text: string; fontSize: number; style?: undefined; })[]; }' is not assignable to parameter of type 'TDocumentDefinitions'.
Types of property 'pageOrientation' are incompatible.
Type 'string' is not assignable to type '"landscape" | "portrait" | undefined'.

75 pdfMake.createPdf(docDefinition).open();

我已经安装了所有的员工:

npm install --save pdfmake
npm i --save-dev @types/pdfmake

并导入它们:

import * as pdfMake from "pdfmake/build/pdfmake";
import * as pdfFonts from 'pdfmake/build/vfs_fonts';
(<any>pdfMake).vfs = pdfFonts.pdfMake.vfs;

代码:

getPdf() {
let docDefinition = {
pageSize: 'A5',
pageOrientation: 'landscape',
content: [
{
text: 'Some data',
style: 'header'
},
{
text: 'some data 2', fontSize: 15
}
]
}
pdfMake.createPdf(docDefinition).open();
}

当我从方法属性定义中删除 pageSizepageOrientation - 错误消失。我还缺少什么?

最佳答案

我在查看 Stackoverflow 上的一些帖子后找到了解决方案。问题在于在 TypeScript 中使用 pdfMake 库(枚举类型)(由 lukasgeiter 在此 post 中描述)。

所以,我更改了 pdfMake 库的导入

import * as pdfMake from "pdfmake/build/pdfmake"; 

const pdfMake = require('pdfmake/build/pdfmake.js');

然后通过 npm 安装节点类型:

npm i @types/node

最后在 Angular 应用程序根目录中的 tsconfig.app.json 文件中做了一些更改(在行的方括号中添加“节点”):

"types": []

修改后:

"types": ["node"]

就是这样。编译器最终开始理解文档定义中的所有内容类型,以便在 pdfMake

createPdf 方法中制作 pdf

关于Angular 11 和 PdfMake。错误 TS2345 : Argument of type {. ..} 不可分配给 TDocumentDefinitions 类型的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67059704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com