l08084のブログ

プログラミングについて書きます

RxJS: Observable.intervalの止め方

はじめに 一定間隔で繰り返したい時におなじみのsetIntervalをRxJSでかくとObservable.intervalになりますが、 setIntervalに対するclearIntervalのようにObservable.intervalを止めたい時は何を使えばいいんだろうか 開発環境 Angular: 5.2.3 rxjs: 5.5.6 T…

Angular + Reduxを学ぶ #1 - selectとdispatchデコレータを使う

はじめに Reactではなく、AngularからReduxに入門するのは茨の道かと思いますが、やっていきます。 今回はReduxを1サイクル回して、配列を更新してコンポーネントで値を取得するところまでやりました。 開発環境 Angular: 5.2.3 TypeScript: 2.5.3 angular/c…

TypeScript(Angular)で定数クラス

はじめに 開発環境 定数をまとめて定義する方法 案1 定数定義だけ書いたファイルを作成する メリット・デメリット 案2 class定義 + readonlyアクセス修飾子 メリット・デメリット 参考サイト はじめに TypeScriptを使って、Javaでいうところの定数クラスを作…

GitHubのREADMEにGIFアニメを配置する

Git

はじめに REDEME.mdにgifアニメがのっているとちゃんとしたプログラムっぽくなる。 手順 色々とやり方があるらしいが(gifを置く用のブランチを作ったり)、下記手順でやってます。 GIPHY Capture. The GIF MakerGiphy, Inc.ビデオ無料 まず、gifアニメを作成…

Angularでテトリスを作った

はじめに 操作方法: 開発環境 このテトリスについて Angular感のあるところ Angularによるcanvas参照 Angularによるキーボードイベント取得 初めてのGithub Pages 参考サイト はじめに Angular5を使ってテトリスを作成しました。のGitHub Pagesで実際に遊べ…

TypeScriptエラー「error TS2345: Argument of type '{}' is not assignable to parameter of type 'KeyboardEvent'. Property 'altKey' is missing in type '{}'.」

はじめに 開発環境 エラーが発生した時のコード エラーを修正した後のコード はじめに Angularでキーボードの→↓←↑とかspaceキーを押した時のイベントを検知するコードを書いていたら発生したエラーとなります。 発生したエラー ERROR in src/app/app.compone…

TypeScriptで「ERROR TypeError: XXX is not a function」が頻発する

はじめに TypeScriptでコードを書いていた所、呼び出し先の関数を定義しているのに、 「XXX is not a function」が発生する事象に苦しんだため、対応方法について記述する。 ERROR TypeError: this.isMobile is not a function at AppComponent.tick (app.co…

TypeScriptでcanvas要素を扱っていたら発生したエラー: 型に呼び出しシグネチャがない式を呼び出すことはできません

はじめに 開発環境 発生したエラーについて エラー原因 参考にしたサイト はじめに Angular + TypeScriptでcanvasの処理を書いていたら、下記のエラーが発生しました(3つとも同様のエラー)。 ERROR in src/app/app.component.ts(159,7): error TS2349: Canno…

VSCodeのDecoratorに関するエラー:[ts] Experimental support for decorators is a feature that is subject to change in a future release. Set the 'experimentalDecorators' option to remove this warning.

はじめに Visual Studio Codeを使ってAngular + Typescriptのコードを書いてたら下記のエラー(警告?)が発生したので、対処法を調べました。 [ts] Experimental support for decorators is a feature that is subject to change in a future release. Set th…

VSCodeでJavaScriptのドキュメンテーションコメント(JSDoc)を自動生成する

はじめに Visual Studio Codeを使用してJSDocコメントを自動生成する方法について書きます。 JSDoc自動生成方法 Document Thisのインストール VSCodeの拡張機能ボタンをクリックした後、Document Thisをインストールする。 なお、Document ThisはJavaScript…

Angular + Redux 環境の構築手順

はじめに ReduxをAngularで使用するときの環境構築手順を記述する 出典 github.com 環境構築手順 まず、Angular CLIを使用してAngularプロジェクトを作成する # Install Angular CLI npm install -g @angular/cli # Use it to spin up a new app. ng new ang…

コードレビュー依頼時のGitコマンド

Git

はじめに 以前所属していたプロジェクトにおけるコードレビューの流れ(Gitコマンドの手順)をメモ。 コードレビュー依頼時のGitコマンド $ git checkout feature/v0.9.1/bug-fix-no-250 $ git rebase develop $ git push -f コードレビューを依頼したいfeatur…

エラー(error TS2503: Cannot find namespace'NodeJS'.)が発生した場合の対応メモ

はじめに Angular5 + Typescript2でコードを書いてたら、表題のエラーに遭遇した。遭遇するの2度目なので解決方法をメモる。 開発環境 Angular@5.2.0 TypeScript@2.5.3 Node@8.1.4 エラー発生時のコード 下記コードのinterval: NodeJS.Timer;の部分でTS2503:…

forEachループの途中で要素を削除した場合のメモ

はじめに forEachでループを回している配列の要素をループの途中で削除した時に、(あくまで自分からみるとの話です)よくわからない挙動をしたので備忘録目的でまとめました。 developer.mozilla.org ループの途中で要素を削除した場合についての、MDNのサイ…

少し変わった(?)配列の参照方法

return ['pig', 'fox', 'bird', 'fish', 'mouse'][3]; // fish 上記の文を見たとき一瞬意味がわからなかったんですが、単純に定義した配列に添字の3を指定して値を呼び出しているだけですね。 かっこいい書き方だと思ったので、今後自分のコードにも積極的に…

parseIntとparseFloatは数字以外の情報を全て無視するって知らなかった

知りませんでした。まあ、初めの文字が数値以外だった場合は、NaNになってしまうんですが。 const weight = '60kg'; const height = '172.5cm'; console.log(parseInt(weight, 10)); // 60 console.log(parseFloat(height, 10)); // 172.5

ブラウザの開発者ツールによるAndroid/iOSアプリのデバッグ方法

はじめに ブラウザの開発者ツールによるAndroid/iOSモバイルアプリのデバッグ方法について書きます。 開発環境 ブラウザ: Google Chrome (バージョン 60.0.3)、Safari (バージョン 9.1.3) OS: OS X EI Capitan (バージョン 10.11.6) Android デバッグしたい…

なんて検索していいかわからなかったJavaScriptの記法メモ

はじめに JavaScriptのコードを見ていて、この書き方どういう意味かわからないけど、なんてキーワードで検索していいかわからない…みたいなことがあったので、検索しづらいと思ったイディオムをまとめた。 検索に困った文法 ショートサーキット a || bでaが…

Angular + Typescriptをブラウザでデバッグしたい

はじめに Angularプロジェクトをブラウザでデバッグする際に、TypescriptファイルにBreakPointを設定する方法がわからなかったので調べた。 環境 Angular: 2.4.7 angular-cli: 1.0.0-beta.28.3 webpack: 2.2.0 Google Chrome: 53.0.2785.116 各種設定ファイ…

なぜ私のAngular CLIはカレントディレクトリにプロジェクトを作成してくれないのか?

Angularプロジェクトの雛形作成に、generator-angular2-typescriptを使っていたのですが、最近Angular CLIに移行しました。 表題の件 Angular CLIでは、ng new [プロジェクト名]コマンドでプロジェクトの雛形をカレントディレクトリに作成してくれるんですが…

個人的にまぎらわしいCSSのセレクタ

CSS

イントロ 数あるCSSセレクタのうち、意味がごっちゃになりやすいものをメモした。 タイプセレクタとclassセレクタの併用 次の例では、タイプセレクタのliとclassセレクタの.itemを続けて記述している(間に半角スペースを含めてはいけない)。<li>タグのclass="ite</li>…

ngForm内に別ComponentのFormを含めるとvalueが取得できない

イントロ ngForm内に、別コンポーネントで定義したテキストフィールドや、セレクトボックスを含めると、Sendボタンで送信するときに、valueを取得できないという問題に直面した。 開発環境 Angular@2.4.1 typescript@2.0.10 デモアプリケーション テキストフ…

angular2-google-mapsで渋滞状況の表示

イントロ 前前回の記事で作成した、angular2-google-mapsのデモアプリに、渋滞状況表示のデモを追加した。 開発環境 Angular@2.4.1 angular2-google-maps@0.17.0 typescript@2.0.10 渋滞状況の表示(traffic layer)とは 道路の混雑状況を色で表示する(空いて…

angular2-google-mapsでリバースジオコーディング

イントロ 前回の記事で作成した、angular2-google-mapsのデモアプリに、リバースジオコーディングのデモを追加した。 開発環境 Angular@2.4.1 angular2-google-maps@0.17.0 typescript@2.0.10 リバースジオコーディングとは 本ブログでは、緯度、経度から住…

angular2-google-mapsでジオコーディング

最近仕事でGoogle Map周りを触ることが多いので、下記ライブラリを使って、ジオコーディング処理のデモアプリを作成してみた。github.com 開発環境 Angular@2.4.1 angular2-google-maps@0.17.0 typescript@2.0.10 ジオコーディングとは Google Maps API公式…

NOTエンジニアPC(Windows7)にIonic2を入れる

開発に使っていないPCにIonic2を入れようとしたら、時間がかかったので、つまづいた部分をメモ。 開発環境 OS: Windows7 64bit Ionic version: 2.0.0-beta.11 Ionic CLI version: 2.0.0 Ionic2環境構築手順 Node.jsのインストール Gulp、Typingsのインストー…

TypeScript2.0.2 + Visual Studio Codeの設定メモ

qiita.com エラーが発生しちゃったので、自分用にメモ。 エラー内容 Angular2に入門しようと、上記サイトを見ながらVSCodeで写経をしていたら下記エラーが発生。 Experimental support for decorators is a feature that is subject to change in a future r…

画像を使ったボタンをTint Colorで塗りつぶす

画像を使ったボタンを他のUIコンポーネントと同じくTint Colorで塗りつぶす。 下記画像のボタンをTint Color(画像では青)に塗りつぶしたい。 以下解決策。 ButtonのTypeをCustom→Systemに切り替える Tintを好きな色に設定 以上。

Segmented Controlのハイライトを消す

表題の件で困ったのでメモ。 Segmented Controlは、状態の切り替えに使われるボタンであり、現在どの状態なのかも選択されているセグメントをハイライトすることで教えてくれます(下記の画像だと、「赤」が選択されている)。 ただ、カレンダーの移動でSegmen…

UICollectionViewセルのイベントを無効にする

表題のしょーもない問題に時間をかけてしまったのでメモ。 開発環境 Xcode: 7.3 Swift: 2.2 OS X EI Capitan(10.11.4) 前回記事の家計簿アプリで曜日と前月/次月の日付も選択できてしまう問題があったため解決策を調べていたんですが、TableViewのCellを選択…