打字稿:依赖似乎没有实现

Typescript: dependency doesn't seem to be fulfiled

编译 Angular 项目时,我从使用 NPM 安装的包中收到错误消息:

node_modules/astrocite-ris/index.d.ts:36:39 - error TS2503: Cannot find namespace 'CSL'.

软件包 Astrocite 包含子软件包 astrocite-ris。我已将其作为 "astrocite": "^0.16.4", 包含在 package.json 中,并将其导入到服务中:

import { parse } from 'astrocite-ris';

VSCode 显示 index.d.ts

中的错误

astrocite-ris 的输入似乎有点不确定。该包是用 TypeScript 编写的,但打字来自一个手动编写的 3 岁 index.d.ts。在处理包本身的类型错误时,您可以选择通过将 "skipLibCheck": false 添加到 tsconfig.json (docs) 中的 compilerOptions 来禁用 node_modules 中的类型检查.但是,在这种情况下,您也可以通过包含

来解决问题
import 'csl-json'

在您的一个源文件中,因为这将声明全局 CSL 命名空间。执行 npm i -D csl-json 以明确将包包含在 dev-dependencies 中也是一个好主意。最终,问题需要由 astrocite-ris 的开发人员解决,因此您可能想在 https://github.com/dsifford/astrocite.

中提出问题