如何使用从 TypeScript 定义文件导出的接口?

How to use exported interface from TypeScript definition file?

我正在尝试使用 jssha 的类型化版本并安装 运行 npm install @types/jssha --save 并安装定义(以及库本身)。

在我的测试文件中,我现在有 import { jsSHA } from 'jssha',在 @types/jssha index.d.ts 中,我看到 export interface jsSHA {...}

我希望现在能够在我的测试文件中调用 jsSHA,但该值是 undefined

如何实际使用导出的接口?

如果它实际上是一个接口,它只是用于构建我们,不是吗?然后你需要在文件顶部 /// <reference path="path to .d.ts" /> 之类的东西

export interface jsSHA {...} 不是您应该如何导入它的指标,因为它是在 declare namespace jsSHA {.

中声明的

当您查看该定义文件中的顶层导出(在最后)时,您会看到

declare var jsSHA: jsSHA.jsSHA;
export = jsSHA;
export as namespace jsSHA;

每当您看到 export = 时,最好的导入方式是通过 import require:

import jsSHA = require('jssha');

var shaObj = new jsSHA("SHA-512", "TEXT");
shaObj.update("This is a test");
var hash = shaObj.getHash("HEX");

如果您使用 module=commonjs 进行编译,此导入也可以工作:

import * as jsSHA from 'jssha';