Typescript “的类型脚本类型声明”;package.json“;清单文件?

Typescript “的类型脚本类型声明”;package.json“;清单文件?,typescript,npm,typescript-typings,package.json,type-declaration,Typescript,Npm,Typescript Typings,Package.json,Type Declaration,在TypeScript中键入“package.json”清单文件内容的最佳方式是什么 从“fs”导入{promises as fs}; 导出函数loadManifest():Promise{ const manifestPath=`${PROJECT_DIR}/package.json`; 返回fs.readFile(manifestPath,{encoding:'utf-8'}); } 在上面的示例中,我必须使用Promise作为返回类型。然而,有没有更好的办法?也许某个我找不到的地方发布了

在TypeScript中键入“package.json”清单文件内容的最佳方式是什么

从“fs”导入{promises as fs};
导出函数loadManifest():Promise{
const manifestPath=`${PROJECT_DIR}/package.json`;
返回fs.readFile(manifestPath,{encoding:'utf-8'});
}
在上面的示例中,我必须使用
Promise
作为返回类型。然而,有没有更好的办法?也许某个我找不到的地方发布了一个包?

有一个。最后一条评论指向。这里使用的类型定义似乎是正确的

安装软件包后,您可以这样使用它:

import { promises as fs } from 'fs';
import {JSONSchemaForNPMPackageJsonFiles} from '@schemastore/package';

export function loadManifest(): Promise<JSONSchemaForNPMPackageJsonFiles> {
  const manifestPath = `${PROJECT_DIR}/package.json`;
  return fs.readFile(manifestPath, { encoding: 'utf-8' }) as Promise<any>;

}
从“fs”导入{promises as fs};
从'@schemastore/package'导入{jsonschemafornpmppackagejsonfiles};
导出函数loadManifest():Promise{
const manifestPath=`${PROJECT_DIR}/package.json`;
返回fs.readFile(manifestPath,{encoding:'utf-8'})作为承诺;
}

导入{
IDependencyMap,
伊恩吉斯,
IPackageJson,
SPDxlicesidApproved
}来自“包json类型”;
常量依赖项:IDependencyMap={
条形图:“^1.0.0”,
baz:“^2.1.0”,
qux:'文件:../src/qux'
};
恒定发动机:发动机={
节点:'>=6.0.1
import {
  IDependencyMap,
  IEngines,
  IPackageJson,
  SPDXLicenseIDApproved
} from 'package-json-type';
 
const dependency: IDependencyMap = {
  bar: '^1.0.0',
  baz: '^2.1.0',
  qux: 'file:../src/qux'
};
 
const engines: IEngines = {
  node: '>=6.0.1 <11.0.0',
  yarn: '^1.15.0',
  zlib: '^0.14.0'
};
 
const license: SPDXLicenseIDApproved = 'MIT';
 
const pkg: IPackageJson = {
  name: 'foo',
  version: '1.2.3',
  dependency,
  description: 'This is awesome foo',
  engines,
  license 
};