#概要
TypeScriptのコンパイルがうまくいきません。
#環境
Windows 10
TypeScript Version 3.3.4000
Node.js v8.11.3
nem2-cli @0.11.0
nem2-sdk @0.11.1
npm @6.9.0
#ソースコード
NEMの公式チュートリアルのコードになります。
TypeScript
1import { 2 Account, Address, Deadline, UInt64, NetworkType, PlainMessage, TransferTransaction, Mosaic, MosaicId, 3 TransactionHttp, NamespaceHttp, RegisterNamespaceTransaction, NamespaceId, AliasTransaction, AliasActionType, 4 AggregateTransaction, MosaicNonce, MosaicDefinitionTransaction, MosaicProperties, MosaicSupplyChangeTransaction, 5 MosaicSupplyType, EmptyMessage, NetworkCurrencyMosaic, Listener, PublicAccount, LockFundsTransaction 6} from 'nem2-sdk'; 7 8 9/* ここまでいつもの */ 10 11 12const nodeUrl = "http://~"; 13const transactionHttp = new TransactionHttp(nodeUrl); 14const listener = new Listener(nodeUrl); 15 16const alicePrivateKey = "8BF8~"; 17const aliceAccount = Account.createFromPrivateKey(alicePrivateKey, NetworkType.MIJIN_TEST); 18 19const ticketDistributorPublicKey = '63FD~'; 20const ticketDistributorPublicAccount = PublicAccount.createFromPublicKey( 21 ticketDistributorPublicKey, 22 NetworkType.MIJIN_TEST 23); 24 25const aliceToTicketDistributorTx = TransferTransaction.create( 26 Deadline.create(), 27 ticketDistributorPublicAccount.address, 28 [NetworkCurrencyMosaic.createRelative(100)], 29 PlainMessage.create('send 100 xem to distributor'), 30 NetworkType.MIJIN_TEST); 31 32const ticketDistributorToAliceTx = TransferTransaction.create( 33 Deadline.create(), 34 aliceAccount.address, 35 [new Mosaic(new MosaicId('2be9~'), UInt64.fromUint(1))], 36 PlainMessage.create('send 1 museum ticket to alice'), 37 NetworkType.MIJIN_TEST 38); 39 40const aggregateTransaction = AggregateTransaction.createBonded( 41 Deadline.create(), 42 [aliceToTicketDistributorTx.toAggregate(aliceAccount.publicAccount), 43 ticketDistributorToAliceTx.toAggregate(ticketDistributorPublicAccount)], 44 NetworkType.MIJIN_TEST 45); 46 47const signedTransaction = aliceAccount.sign(aggregateTransaction); 48 49 50 51 52const lockFundsTransaction = LockFundsTransaction.create( 53 Deadline.create(), 54 NetworkCurrencyMosaic.createRelative(100), 55 UInt64.fromUint(480), 56 signedTransaction, 57 NetworkType.MIJIN_TEST); 58 59const lockFundsTransactionSigned = aliceAccount.sign(lockFundsTransaction); 60 61listener.open().then(() => { 62 63 transactionHttp 64 .announce(lockFundsTransactionSigned) 65 .subscribe(x => console.log(x), err => console.error(err)); 66 67 listener 68 .confirmed(aliceAccount.address) 69 .pipe( 70 filter((transaction) => transaction.transactionInfo !== undefined 71 && transaction.transactionInfo.hash === lockFundsTransactionSigned.hash), 72 mergeMap(ignored => transactionHttp.announceAggregateBonded(signedTransaction)) 73 ) 74 .subscribe(announcedAggregateBonded => console.log(announcedAggregateBonded), 75 err => console.error(err)); 76});
##エラーコード
Console
1 2>tsc aggregate_escrow.ts 3aggregate_escrow.ts:71:13 - error TS2552: Cannot find name 'filter'. Did you mean 'File'? 4 571 filter((transaction) => transaction.transactionInfo !== undefined 6 ~~~~~~ 7 8 ../../AppData/Roaming/npm/node_modules/typescript/lib/lib.dom.d.ts:5115:13 9 5115 declare var File: { 10 ~~~~ 11 'File' is declared here. 12 13aggregate_escrow.ts:73:13 - error TS2304: Cannot find name 'mergeMap'. 14 1573 mergeMap(ignored => transactionHttp.announceAggregateBonded(signedTransaction)) 16 ~~~~~~~~ 17 18 19Found 2 errors.
#試したこと
Console
1npm i @types/rx rxjs
#その他
型定義ファイルの問題なんだろうと思いますが、何が足りないのかわかりません。よろしくおねがいします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。