繁体   English   中英

是否为canonical-json提供index.d.ts文件?

[英]Providing an index.d.ts file for canonical-json?

我正在尝试为canonical-json创建一个index.d.ts文件。 这就是我所拥有的:

declare module 'canonical-json' {
    export function stringify(s: any): string;
}

还尝试了:

declare namespace JSON {
  export function stringify(s:any):string;
}

export = JSON;

export as namespace JSON;
export const stringify: (o:any) => string;

但是我得到:

canonical_json_1.stringify不是一个函数

对于所有三个尝试。

这是stackblitz: https ://stackblitz.com/edit/typescript-cryptojs ? file = src%2F%40types%2Fcanonical-json%2Findex.d.ts

由于这是一个通用的js模块,因此整个导出都是一个对象,因此您可以使用特定的export =语法:

// src\@types\canonical-json\index.d.ts
declare module 'canonical-json' {
    function stringify(s: any): string;
    export = stringify;
}
// index.ts
import stringify = require('canonical-json');

您还可以启用"esModuleInterop": true以将导出作为默认导入进行访问:

// src\@types\canonical-json\index.d.ts
declare module 'canonical-json' {
    function stringify(s: any): string;
    export = stringify;
}
// index.ts
import stringify from 'canonical-json';

最后一个选择是使定义仅具有默认导出,您仍然需要"esModuleInterop": true因为模块实际上没有默认导出:

// src\@types\canonical-json\index.d.ts
declare module 'canonical-json' {
    export default function stringify(s: any): string;
}

// index.ts
import stringify from 'canonical-json';

注意:我在节点中测试了所有这些配置,但我希望在其他环境中也能使用相同的配置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM