質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
RxJS

RxJSは、Observablesを用いたリアクティブプログラミングのJavaScript向けの実装です。イベント駆動処理も含めた非同期処理を高い可読性を持って容易にコーディングできます。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

解決済

1回答

588閲覧

TypeScriptでfilter, mergeMapが読み込まれない。

touho

総合スコア26

RxJS

RxJSは、Observablesを用いたリアクティブプログラミングのJavaScript向けの実装です。イベント駆動処理も含めた非同期処理を高い可読性を持って容易にコーディングできます。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

0クリップ

投稿2019/04/01 08:29

#概要
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

#その他
型定義ファイルの問題なんだろうと思いますが、何が足りないのかわかりません。よろしくおねがいします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

import {filter, mergeMap} from 'rxjs/operators';を挿入するとうまくいきました。

投稿2019/04/01 09:00

touho

総合スコア26

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問