现有 javascript 库的最小打字稿定义
Minimal typescript definition for existing javascript library
我想使用 neat-csv 库,但它不提供打字稿定义文件。几篇博客提到了一种快速创建最小定义文件的方法:
declare var neatCsv: any;
但我不知道如何处理定义文件。它应该位于哪里?您如何 link 具有位于 node_modules/neat-csv
中的实际实现的定义文件。那么如何将它导入到实际的打字稿文件中呢?
包使用了以下模块导入语法:
const neatCsv = require('neat-csv');
这意味着这种模块是您不需要使用默认导出 export default x
的导出 { x }
。您需要的是:
declare module "neat-csv" {
var neatCsv: (input: any, options?: any) => Promise<any>;
export = neatCsv;
}
您可以将上述代码复制到 src
文件夹中名为 declarations.d.ts
的文件中。然后,您就可以按如下方式导入和使用它了:
import * as neatCsv from "neat-csv";
let csv = "type,part\nunicorn,horn\nrainbow,pink";
neatCsv(csv, { /* options */ });
我想使用 neat-csv 库,但它不提供打字稿定义文件。几篇博客提到了一种快速创建最小定义文件的方法:
declare var neatCsv: any;
但我不知道如何处理定义文件。它应该位于哪里?您如何 link 具有位于 node_modules/neat-csv
中的实际实现的定义文件。那么如何将它导入到实际的打字稿文件中呢?
包使用了以下模块导入语法:
const neatCsv = require('neat-csv');
这意味着这种模块是您不需要使用默认导出 export default x
的导出 { x }
。您需要的是:
declare module "neat-csv" {
var neatCsv: (input: any, options?: any) => Promise<any>;
export = neatCsv;
}
您可以将上述代码复制到 src
文件夹中名为 declarations.d.ts
的文件中。然后,您就可以按如下方式导入和使用它了:
import * as neatCsv from "neat-csv";
let csv = "type,part\nunicorn,horn\nrainbow,pink";
neatCsv(csv, { /* options */ });