Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Mitsuru Ogawa
PDF, PPTX
11,008 views
React+TypeScriptもいいぞ
2016/11/28 dots. フロントエンドエンジニア部 創立ビアバッシュ<会!https://eventdots.jp/event/605542
Technology
◦
Read more
4
Save
Share
Embed
Download
Download as PDF, PPTX
1
/ 28
2
/ 28
3
/ 28
4
/ 28
5
/ 28
6
/ 28
7
/ 28
8
/ 28
9
/ 28
10
/ 28
11
/ 28
12
/ 28
13
/ 28
14
/ 28
15
/ 28
16
/ 28
17
/ 28
18
/ 28
19
/ 28
20
/ 28
21
/ 28
22
/ 28
23
/ 28
24
/ 28
25
/ 28
26
/ 28
27
/ 28
28
/ 28
More Related Content
PPTX
今からでも遅くない! React事始め
by
ynaruta
PDF
React.jsでクライアントサイドなWebアプリ入門
by
spring_raining
PPTX
20160927 reactmeetup
by
Naoki Kurosawa
PPTX
React を導入したフロントエンド開発
by
daisuke-a-matsui
PDF
React入門-JSONを取得して表示する
by
regret raym
PDF
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
by
Kohei Asai
PDF
Isomorphic web development with scala and scala.js
by
TanUkkii
PDF
Flux react現状確認会
by
VOYAGE GROUP
今からでも遅くない! React事始め
by
ynaruta
React.jsでクライアントサイドなWebアプリ入門
by
spring_raining
20160927 reactmeetup
by
Naoki Kurosawa
React を導入したフロントエンド開発
by
daisuke-a-matsui
React入門-JSONを取得して表示する
by
regret raym
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
by
Kohei Asai
Isomorphic web development with scala and scala.js
by
TanUkkii
Flux react現状確認会
by
VOYAGE GROUP
What's hot
PDF
React Native GUIDE
by
dcubeio
PDF
RailsでReact.jsを動かしてみた話
by
yoshioka_cb
PPTX
React NativeでTwitterクライアントを作ってみよう
by
dcubeio
PDF
One Time Binding & Digest Loop
by
Kon Yuichi
PPTX
AngularJS入門
by
Kenji Shirane
PPTX
Angular js はまりどころ
by
Ayumi Goto
PDF
React Native 入門
by
Seiichi Okumiya
PDF
Service Workerとの戦い ~ 実装編 ~ #scripty03
by
Yahoo!デベロッパーネットワーク
PDF
Angular.jsについてちょっとしゃべる
by
Masashi Haga
PDF
こんなに使える!今どきのAPIドキュメンテーションツール
by
dcubeio
PPTX
エンタープライズ分野での実践AngularJS
by
Ayumi Goto
PDF
javascript を Xcode でテスト
by
Yoichiro Sakurai
PPTX
React.js・ReactNative・Redux入門
by
Kazuhiro Yoshimoto
PDF
React Redux Redux-Saga + サーバサイドレンダリング
by
エンジニア勉強会 エスキュービズム
PDF
AngularJSの高速化
by
Kon Yuichi
PDF
AngularJSでの非同期処理の話
by
Yosuke Onoue
PDF
DevLOVE Kansai KnockoutJS
by
Go Tanaka
PDF
はじめよう Backbone.js
by
Hiroki Toyokawa
PDF
Start React with Browserify
by
Muyuu Fujita
PDF
jQuery Validation x ASP.NET MVC で遭遇した不具合 & 対抗ハック
by
Jun-ichi Sakamoto
React Native GUIDE
by
dcubeio
RailsでReact.jsを動かしてみた話
by
yoshioka_cb
React NativeでTwitterクライアントを作ってみよう
by
dcubeio
One Time Binding & Digest Loop
by
Kon Yuichi
AngularJS入門
by
Kenji Shirane
Angular js はまりどころ
by
Ayumi Goto
React Native 入門
by
Seiichi Okumiya
Service Workerとの戦い ~ 実装編 ~ #scripty03
by
Yahoo!デベロッパーネットワーク
Angular.jsについてちょっとしゃべる
by
Masashi Haga
こんなに使える!今どきのAPIドキュメンテーションツール
by
dcubeio
エンタープライズ分野での実践AngularJS
by
Ayumi Goto
javascript を Xcode でテスト
by
Yoichiro Sakurai
React.js・ReactNative・Redux入門
by
Kazuhiro Yoshimoto
React Redux Redux-Saga + サーバサイドレンダリング
by
エンジニア勉強会 エスキュービズム
AngularJSの高速化
by
Kon Yuichi
AngularJSでの非同期処理の話
by
Yosuke Onoue
DevLOVE Kansai KnockoutJS
by
Go Tanaka
はじめよう Backbone.js
by
Hiroki Toyokawa
Start React with Browserify
by
Muyuu Fujita
jQuery Validation x ASP.NET MVC で遭遇した不具合 & 対抗ハック
by
Jun-ichi Sakamoto
Similar to React+TypeScriptもいいぞ
PDF
SPAを選択した理由とその結果 ~Reactを添えて~
by
Developer Solutions事業部 メシウス株式会社 (旧グレープシティ株式会社)
PPTX
Hello, React!! まで導く Reactの基礎
by
iPride Co., Ltd.
PPTX
React+TypeScriptと格闘して得た知見
by
iPride Co., Ltd.
PDF
React.js + Flux入門 #scripty02
by
Yahoo!デベロッパーネットワーク
PDF
Om Next ~React.jsを超えて
by
Kazuki Tsutsumi
PDF
GraphQL with React
by
Taketoshi 青野健利
PPTX
SYSTEMI勉強会まとめ資料(React基礎まとめ)
by
YoshikiWatanabe1
PPTX
React入門
by
GIG inc.
PPTX
JapanDreamin24_はじめてのGraphQL×LWC.pptx
by
Ryota Tabuse
PDF
Reactとbabelで簡易タスク管理ツール作ってみた
by
Tsuyoshi Maeda
PPTX
React+redux+saga 01
by
TIS Inc
PDF
React introduntion
by
YutaShimabukuro
PPTX
Reactに触れてみた
by
iPride Co., Ltd.
PPTX
React+redux+saga 03
by
TIS Inc
PDF
図とコード例で多分わかる React と flux (工事中)
by
Teloo
PPTX
Reactつかってみた
by
Minori Tokuda
PPTX
Reactにflowtypeを組み合わせることで、我々は何を楽にできたか
by
LINE Corporation
PDF
GraphQL入門 (AWS AppSync)
by
Amazon Web Services Japan
PDF
GraphQL超入門(座学).pdf
by
mayumisakurai1
PDF
raect.jsを触ったお話
by
Ryuuichi Iha
SPAを選択した理由とその結果 ~Reactを添えて~
by
Developer Solutions事業部 メシウス株式会社 (旧グレープシティ株式会社)
Hello, React!! まで導く Reactの基礎
by
iPride Co., Ltd.
React+TypeScriptと格闘して得た知見
by
iPride Co., Ltd.
React.js + Flux入門 #scripty02
by
Yahoo!デベロッパーネットワーク
Om Next ~React.jsを超えて
by
Kazuki Tsutsumi
GraphQL with React
by
Taketoshi 青野健利
SYSTEMI勉強会まとめ資料(React基礎まとめ)
by
YoshikiWatanabe1
React入門
by
GIG inc.
JapanDreamin24_はじめてのGraphQL×LWC.pptx
by
Ryota Tabuse
Reactとbabelで簡易タスク管理ツール作ってみた
by
Tsuyoshi Maeda
React+redux+saga 01
by
TIS Inc
React introduntion
by
YutaShimabukuro
Reactに触れてみた
by
iPride Co., Ltd.
React+redux+saga 03
by
TIS Inc
図とコード例で多分わかる React と flux (工事中)
by
Teloo
Reactつかってみた
by
Minori Tokuda
Reactにflowtypeを組み合わせることで、我々は何を楽にできたか
by
LINE Corporation
GraphQL入門 (AWS AppSync)
by
Amazon Web Services Japan
GraphQL超入門(座学).pdf
by
mayumisakurai1
raect.jsを触ったお話
by
Ryuuichi Iha
More from Mitsuru Ogawa
PDF
Angular2 rc.1 unit testing overview
by
Mitsuru Ogawa
PPTX
Webアプリケーションセキュリティ ディスカッション資料
by
Mitsuru Ogawa
PDF
Lightningコンポーネント事始め
by
Mitsuru Ogawa
PDF
ゆるふわWoT&firefoxOS体験記
by
Mitsuru Ogawa
PDF
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
by
Mitsuru Ogawa
PDF
今後のWeb開発の未来を考えてangularJSにしました
by
Mitsuru Ogawa
PDF
エンタープライヤーのためのWeb Componentsハンズオン
by
Mitsuru Ogawa
PDF
エンタープライズとHTML5〜エンタープライズでHTML5って本当に必要なのか?〜
by
Mitsuru Ogawa
PDF
国内初事例に学ぶSAPUI5
by
Mitsuru Ogawa
PDF
35歳無名のシステムエンジニアが1年半でフロントエンジニアになるために行った3つの成長戦略
by
Mitsuru Ogawa
PDF
賢くツールを使って脱人海戦術駆動テスト
by
Mitsuru Ogawa
PDF
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
by
Mitsuru Ogawa
PDF
HTML5とOSSで作るブラウザで簡単顔認識
by
Mitsuru Ogawa
PDF
業務系WebアプリケーションがStrutsから旅立つ日
by
Mitsuru Ogawa
PDF
ゆるふわCSS3
by
Mitsuru Ogawa
PDF
これからフロントエンジニアを目指すあなたへ
by
Mitsuru Ogawa
PDF
オフラインWeb 今どきのデータ永続化事情
by
Mitsuru Ogawa
PDF
Enja OSSやってます
by
Mitsuru Ogawa
Angular2 rc.1 unit testing overview
by
Mitsuru Ogawa
Webアプリケーションセキュリティ ディスカッション資料
by
Mitsuru Ogawa
Lightningコンポーネント事始め
by
Mitsuru Ogawa
ゆるふわWoT&firefoxOS体験記
by
Mitsuru Ogawa
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
by
Mitsuru Ogawa
今後のWeb開発の未来を考えてangularJSにしました
by
Mitsuru Ogawa
エンタープライヤーのためのWeb Componentsハンズオン
by
Mitsuru Ogawa
エンタープライズとHTML5〜エンタープライズでHTML5って本当に必要なのか?〜
by
Mitsuru Ogawa
国内初事例に学ぶSAPUI5
by
Mitsuru Ogawa
35歳無名のシステムエンジニアが1年半でフロントエンジニアになるために行った3つの成長戦略
by
Mitsuru Ogawa
賢くツールを使って脱人海戦術駆動テスト
by
Mitsuru Ogawa
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
by
Mitsuru Ogawa
HTML5とOSSで作るブラウザで簡単顔認識
by
Mitsuru Ogawa
業務系WebアプリケーションがStrutsから旅立つ日
by
Mitsuru Ogawa
ゆるふわCSS3
by
Mitsuru Ogawa
これからフロントエンジニアを目指すあなたへ
by
Mitsuru Ogawa
オフラインWeb 今どきのデータ永続化事情
by
Mitsuru Ogawa
Enja OSSやってます
by
Mitsuru Ogawa
Recently uploaded
PDF
LoRaWAN小売業DXソリューション ~天候データと人流カウンターを利用して売り上げアップに貢献!
by
CRI Japan, Inc.
PDF
論文紹介:"Reflexion: language agents with verbal reinforcement learning", "MA-LMM...
by
Toru Tamaki
PDF
手軽に広範囲でプライバシーを守りながら人数カウントできる ~ LoRaWAN AI人流カウンター PF52 日本語カタログ
by
CRI Japan, Inc.
PDF
論文紹介:"MM-Tracker: Motion Mamba for UAV-platform Multiple Object Tracking", "M...
by
Toru Tamaki
PDF
How We Operated Ticket-Driven Development in JIRA.pdf
by
akipii ogaoga
PDF
論文紹介:Simultaneous Detection and Interaction Reasoning for Object-Centric Acti...
by
Toru Tamaki
PDF
論文紹介: "Locality-Aware Zero-Shot Human-Object Interaction Detection" "Disentan...
by
Toru Tamaki
PDF
歴史好きのスクラム話 JBUG名古屋#5 AI時代のデータドリブンなプロジェクト管理
by
Tatsuya Naiki
LoRaWAN小売業DXソリューション ~天候データと人流カウンターを利用して売り上げアップに貢献!
by
CRI Japan, Inc.
論文紹介:"Reflexion: language agents with verbal reinforcement learning", "MA-LMM...
by
Toru Tamaki
手軽に広範囲でプライバシーを守りながら人数カウントできる ~ LoRaWAN AI人流カウンター PF52 日本語カタログ
by
CRI Japan, Inc.
論文紹介:"MM-Tracker: Motion Mamba for UAV-platform Multiple Object Tracking", "M...
by
Toru Tamaki
How We Operated Ticket-Driven Development in JIRA.pdf
by
akipii ogaoga
論文紹介:Simultaneous Detection and Interaction Reasoning for Object-Centric Acti...
by
Toru Tamaki
論文紹介: "Locality-Aware Zero-Shot Human-Object Interaction Detection" "Disentan...
by
Toru Tamaki
歴史好きのスクラム話 JBUG名古屋#5 AI時代のデータドリブンなプロジェクト管理
by
Tatsuya Naiki
React+TypeScriptもいいぞ
1.
React+TypeScriptもいいぞ 2016/11/28 フロントエンドエンジニア部 創立ビアバッシュ<会 小川 充(mitsuruog)
2.
自己紹介 ● 小川 充(mitsuruog) ● 株式会社ギブリー リードフロントエンドエンジニア ●
ng-japan ○ 普段はAngularな人 ○ ガルパンおじさん ● Blog: http://blog.mitsuruog.info/ ● Github: https://github.com/mitsuruog
3.
なにをしているのか?
5.
2017/01 全面リニューアル予定 http://codeprep.jp/
6.
CODEPREP リニューアル ● PHP ●
Frontend: React+TypeScript(1.8)+Flux ● Backend: Scala
7.
周辺ツールなど ● Build -
Webpack ● UnitTest - karma + jasmine + enzyme ○ https://github.com/airbnb/enzyme ● Lint - TSLint + tslint-react ○ https://palantir.github.io/tslint/ ○ https://github.com/palantir/tslint-react ● Deploy - CircleCI + Github hook で自動デプロイ ● Error Tracking - Rollbar ○ https://rollbar.com/
8.
実際使ってみてどうだったか?
9.
で、実際に使ってみてどうだったのか? ● 使う前に考えていたこと ○ ポジティブ ■
強力な型チェックによる 完全な型セーフな世界 ! ○ ネガティブ ■ 型定義が面倒ではないか? ■ 既存のFrontendのツールチェーンと共存できるか? ■ テストカバレッジがうまく取得できるか?
10.
で、実際に使ってみてどうだったのか? ● 強力な型チェックによる完全な型セーフな世界! ○ コンパイル時に型エラーを検出できるのは偉大。 ○
IDEの補助も得られる。
11.
で、実際に使ってみてどうだったのか? ● 強力な型チェックによる完全な型セーフな世界! ○ ただ、完全ではない。 ■
[as any] [null] を使うケースに必ず遭遇する。
12.
で、実際に使ってみてどうだったのか? ● 型定義が面倒ではないか? ○ 面倒なことは面倒だが、TypeScriptには型推論機能があるため少し軽減される。 ○
ただ、サードパーティ製のライブラリと組み合わせる場合は、型を探すのが面倒。 ■ 型定義ファイルが使えない場合もある。
13.
で、実際に使ってみてどうだったのか? ● 既存のFrontendのツールチェーンと共存できるか? ○ とりあえず、Webpackのエコシステムに乗る。 ○
TypeStrong/ts-loader: TypeScript loader for webpack https://github.com/TypeStrong/ts-loader ● テストカバレッジがうまく取得できるか? ○ うまく取得できていない。。。(調査中)
14.
で、実際に使ってみてどうだったのか? ● 使う前に考えていたこと ○ ポジティブ ■
強力な型チェックによる 完全な型セーフな世界 ! ○ ネガティブ ■ 型定義が面倒ではないか? ■ 既存のFrontendのツールチェーンと共存できるか? ■ テストカバレッジがうまく取得できるか? TypeScript導入の効果は複利のようなもの
15.
コードサンプル例 ● Component ● Componentの継承 ●
Stateless functional component
16.
Component ● 内部Stateを持つもの。 ● React.Component<P,
S>を継承 する。 ○ PはProps、SはState ● Stateの初期化はコンストラクタ 内で行う。 import * as React from "react"; interface IHelloProps { userId: number; } interface IHelloState { name: string; } class Hello extends React.Component<IHelloProps, IHelloState> { constructor(props: IHelloProps) { super(props); this.state = { name: "mitsuruog", }; } } export default Hello;
17.
Componentの継承 ● 共通機能を親クラスに分離す る。 ● PropsやStateも共通なものは分 離して継承する。
画面A 画面B 画面C 画面共通
18.
Componentの継承(子Component側) import * as
React from "react"; interface IHelloProp extends IBaseProp {} interface IHelloState extends IBaseState { name: string; } export default class Hello extends Base<IHelloProp, IHelloState> { constructor(props: IHelloProp) { super(props); // 親Componentで初期化したStateとmergeする this.state = Object.assign({}, this.getInitialStates(), { name: "", }); } } ● 親Componentを継承して、PropsとStateも継承する。
19.
Componentの継承(親Component側) import * as
React from "react"; export interface IBaseProps { userId: number; } export interface IBaseState { isRender: boolean; } export default class Base<P extends IBaseProps, S extends IBaseState> extends React.Component<P, S> { constructor(props: P) { super(props as P); } // 継承先でStateを初期化するための細工、getInitialStateではなくgetInitialState[s] // getInitialStateはReact.Componentでサポートしていないので警告が出る protected getInitialStates() { return { isRender: false } as IBaseState as S; } } ● 親Components内では子Componentの型<P, S>を利用する。
20.
Stateless functional component ●
内部Stateを持たないもの。 ● Pureなfunctionを利用する。 ● argumentsにProps型を指定す る。 import * as React from "react"; export interface IGreetingProps { name: string; } export default function Greeting({ name }: IGreetingProps) { return ( <div>Hello {name}</div> ); }
21.
開発時に工夫しているポイント ● Code自動生成 ● Component
catalog
22.
Stateless functional component 増加問題 (現在54個。たぶん2倍以上になる)
23.
Code自動生成 ● inquirer +
mustacheを使って自作 ○ Angularと心中する - @Quramy https://quramy.github.io/spa-knowhow-note/#/23 ● 次のScaffoldを生成 ○ Component本体の.tsx ○ ComponentとついとなるBEMの.scss ○ UnitTest用の.spec ○ Component catalog用の定義ファイル.styleguide(後述)
24.
Component catalog ● mustacheを使って自作 ○
styleguide用の定義ファイルからCatalogを自動生成。 ○ TypeScriptのInterface型定義を取り出して再利用できると尚良い。(誰か教えて)
25.
まとめ
26.
まとめ ● TypeScript導入の効果は複利のようなもの ○ 大規模で期間が長いほど効果が高い。 ○
完全ではないが、無い時代と比べると。。。ry) ● 環境構築の敷居は高め ○ とはいえ、これは昨今のFrontend全般で言えること。 ● Stateless functional componentが多くなるので工夫しよう ○ Code自動生成 ○ Component catalog 新規構築であればTypeScript導入を検討する価値は十分ある
27.
ありがとうございました! 一緒にCODEPREP盛り上げてくれる仲間も募集中です!! https://www.wantedly.com/projects/66283
28.
参考 ● React +
Redux + TypeScript でWebアプリを作った感想・勉強法と Angular との比較 - Qiita ○ http://qiita.com/star__hoshi/items/34eb4ccafcfa100b5cad ● TypeScript1.6 + React 書いてみてハマったポイントとか - Qiita ○ http://qiita.com/Linda_pp/items/ff0feac7e34a65657b3c ● React JSX with TypeScript(1.6) - Qiita ○ http://qiita.com/Quramy/items/70f97e68d21859d91ed8 ● React & Webpack · TypeScript ○ https://www.typescriptlang.org/docs/handbook/react-&-webpack.html
Download