【问题标题】:How to use exported interface from TypeScript definition file?如何使用从 TypeScript 定义文件中导出的接口?
【发布时间】:2016-11-30 07:57:39
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: typescript typescript-typings


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-25
        • 2012-10-20
        • 2015-08-23
        相关资源
        最近更新 更多