无法解析ECPair的所有参数:(?,?,?)

时间:2017-11-10 21:42:50

标签: angular typescript typescript-typings bitcoinlib

我尝试在新的角度4应用中实现bitcoinjs-lib 我做了什么:

npm install bitcoinjs-lib --save
npm install @types/bitcoinjs-lib --save

我的app.component.ts:

import { Inject } from '@angular/core';
import { Component } from '@angular/core';
import { HDNode, Transaction, ECPair } from 'bitcoinjs-lib'

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'app';

  constructor(private ecPair: ECPair){
    console.log(this.ecPair.getAddress())
  }
}

编译成功但我进入浏览器:

Uncaught Error: Can't resolve all parameters for ECPair: (?, ?, ?).
    at syntaxError (compiler.js:466)

以下是node_modules中的ECPair:

export class ECPair {
    constructor(d: BigInteger, Q?: null, options?: { compressed?: boolean, network?: Network });

    constructor(d: null | undefined, Q: any, options?: { compressed?: boolean, network?: Network }); // Q should be ECPoint, but not sure how to define such type

    d: BigInteger;

    getAddress(): string;
...
}

据我所知,由于不同的参数类型,他不知道如何实例化它,我该如何解决?我尝试使用@Inject,但也无法解决。

由于

1 个答案:

答案 0 :(得分:2)

您必须正确提供。在@NgModule中,您应该使用以下内容:

@NgModule({
  ...
  providers: [
    ...
    { ECPair, useFactory:()=>new ECPair(d,Q,options) }
  ]
})

d Qoptions指定适当的参数。