2016-11-29 65 views
0

我正在尝试使用jssha的打印版本并运行npm install @types/jssha --save并安装了定义(以及库本身)。如何使用TypeScript定义文件中的导出接口?

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

我希望能够现在称之为jsSHA在我的测试文件,但该值undefined

我该如何真正使用导出的界面?

回答

2

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'; 
+0

你的答案是100%正确的。谢谢。 –

-1

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

相关问题