SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
はじめてのTypeScript
講師紹介
榮枝純一
SCE(現SIE、PlayStation)で社内SE的な仕事の後、起業。
自社サービスや受託開発をしつつ、受託の取引先だったタスカジのシステムをほぼ一人
で巻取る(現在は社員として参加)。設計から実装・運用まで行うフルスタックエンジニア
として活動中!
・使ってきた言語は
C、C++(使いこなせてない)で画像処理(顔の立体計測とか)
Java、Scala(主にPlayFramework)、PHP(!?)
Javascript(主にjQuery)、CoffeeScript(主にBackbone)、TypeScript(主にAngular)
1.TypeScriptとは
きっちりした言語が好きな人用のJavascript
サーバサイドの一般的なプログラミング言語では、当たり前の用
にある「型」
型があると、
・引数の間違えによるバグの発見
・エディタによる関数サジェスト(正式名?)
などが捗ります。
型がある言語に慣れてしまうと、無い言語は苦痛。。
例)TypeScriptで、成人しているユーザを取り出す
class BirthDay {
private static today(): Date {
return new Date();
}
constructor(private birthday: Date) {
}
public age(): number {
return BirthDay.today().getFullYear() - this.birthday.getFullYear()
+ (this.isOverBirthday() ? 1 : 0);
}
private isOverBirthday(): boolean {
if (BirthDay.today().getMonth() < this.birthday.getMonth()) {
return false;
}
if (BirthDay.today().getMonth() === this.birthday.getMonth()) {
return BirthDay.today().getDay() >= this.birthday.getDay();
}
return true;
}
}
class User {
constructor(private _name: string, private birthDay: BirthDay) {
}
get name(): string {
return this._name;
}
public age(): number {
return this.birthDay.age();
}
}
const users: User[] = [
new User("Taro", new BirthDay(new Date("2001-01-10"))),
new User("Jon", new BirthDay(new Date("1984-06-23"))),
new User("Hanako", new BirthDay(new Date("2005-9-19"))),
new User("Yamada", new BirthDay(new Date("1999-3-19"))),
];
users.filter((user) => {
return user.age() >= 20;
}).map(user => user.name)
.forEach(name => console.log(name));
同じコードをJavascriptで書くと
https://bit.ly/2Lm17az
なぜTypeScriptを選ぶのか
TypeScriptのメリットいろいろ 1
・型があるので便利
 ・問題があるとコンパイル時にエラーで怒ってくれる
 ・(エディタによるかもしれないですが、)コード補完が充実する
・Javascriptの闇、”prototype”を触らなくていい
・classやinterfaceを扱える(※)のでオブジェクト指向が捗る
 →逆にフロント開発経験がサーバ側開発スキルにも生きる!!
※当時はJavascriptに”class”はなかった。
 また、今もJavascriptのclassはprivateがなかったりと不完全
 そして、Javascriptにはinterfaceはない。。
TypeScriptのメリットいろいろ 2
・フロントエンドフレームワークのAngularではTypeScriptほぼ必須
 ・AngularはReactやVueに押され気味ですが、もちろんReactやVueをTypeScriptで
書くことも出来ます。
 ・バックエンドをnodeで書く場合にもTypeScriptで書けます
・コンパイルするとJavaScriptになる言語(AltJS)はTypeScript以外にもありますが、そ
の中でTypeScriptがデファクトスタンダード
・Githubによる分析でもプロジェクト数7位、成長率3位の言語!
https://octoverse.github.com/projects
TypeScriptのデメリット
・コンパイルしないといけない。
・コンパイルの設定が色々あって複雑。。tsconfig.json
 (設定しなくてもある程度のことは出来ます。)
・手続き型に慣れているプログラマーには?
ぐらい。
なぜTypeScriptを選ぶのか
→比較的大規模な開発では
あると捗る
TypeScriptのはじめかた
ちょっと触ってみよう
http://www.typescriptlang.org/play/
TypeScript開発環境の作り方ダイジェスト
1.npm/nodeを用意する→インストールされていない場合は次ページ補足
2.typescriptのインストール
$npm install -g typescript
3.typescriptのコードを書く
→sample.ts
4.コンパイル
$tsc sample.ts
→sample.jsが生成されます。index.htmlなどに埋め込むなどで実行します。
補足:npmのインストール
nodeをインストールするとnpmもついてきます。
https://nodejs.org/en/download/
からダウンロードしてインストール
macの場合はhomebrewを使って以下のコマンドでも可。
$brew install node
Javascriptの進化も見逃せない!
ES2015(ES6), ES2016, ES2017, ES2018,...
let/const, classやラムダ、アロー関数等々TypeScriptにしかなかった機能がどんどん
Javascriptにも。
(https://github.com/tc39 辺りで色々推められている感じ?)
Javascriptが進化していくとTypeScriptはい
らなくなる??
Javascriptに対してTypeScriptの優位性がなくなる日は
来ない。(たぶん)
おそらく、
・Javascriptに「型」が導入されることはない
・classの仕様もこれ以上大きな変更があるとは考えにくい。(privateとか。)
・JavascriptにInterfaceが導入されることもなさそう。
・Javascriptの変化は、TypeScriptでも使える。
→当面TypeScriptを使えて困ることはない。
更に詳しく
https://www.typescriptlang.org/docs/home.html
を読みましょう。

Contenu connexe

Tendances

Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Narami Kiyokura
 
Visual Studio ~ 過去、現在、そして未来
Visual Studio ~ 過去、現在、そして未来Visual Studio ~ 過去、現在、そして未来
Visual Studio ~ 過去、現在、そして未来Akira Inoue
 
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上Tatsuya Ishikawa
 
開発者による現実的な自動化テスト及びRubyのテストツールについて
開発者による現実的な自動化テスト及びRubyのテストツールについて開発者による現実的な自動化テスト及びRubyのテストツールについて
開発者による現実的な自動化テスト及びRubyのテストツールについてTakaaki Kasai
 
20170809 start python_selenium
20170809 start python_selenium20170809 start python_selenium
20170809 start python_seleniumHiroko Tamagawa
 
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップ慎一 古賀
 
テストを書くのが嫌いな君へ #m3dev
テストを書くのが嫌いな君へ #m3devテストを書くのが嫌いな君へ #m3dev
テストを書くのが嫌いな君へ #m3devKazuhiro Sera
 
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶjQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶShumpei Shiraishi
 
海外のSeleniumカンファレンスではどんな発表がされているのか2014
海外のSeleniumカンファレンスではどんな発表がされているのか2014海外のSeleniumカンファレンスではどんな発表がされているのか2014
海外のSeleniumカンファレンスではどんな発表がされているのか2014Nozomi Ito
 
FriendlyによるWindowsアプリテスト自動化手法 基礎技術編
FriendlyによるWindowsアプリテスト自動化手法 基礎技術編FriendlyによるWindowsアプリテスト自動化手法 基礎技術編
FriendlyによるWindowsアプリテスト自動化手法 基礎技術編Kenji Fukumoto
 
無償版Visual StudioでいろいろWeb開発
無償版Visual StudioでいろいろWeb開発無償版Visual StudioでいろいろWeb開発
無償版Visual StudioでいろいろWeb開発Narami Kiyokura
 

Tendances (12)

Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
 
Visual Studio ~ 過去、現在、そして未来
Visual Studio ~ 過去、現在、そして未来Visual Studio ~ 過去、現在、そして未来
Visual Studio ~ 過去、現在、そして未来
 
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
 
開発者による現実的な自動化テスト及びRubyのテストツールについて
開発者による現実的な自動化テスト及びRubyのテストツールについて開発者による現実的な自動化テスト及びRubyのテストツールについて
開発者による現実的な自動化テスト及びRubyのテストツールについて
 
20170809 start python_selenium
20170809 start python_selenium20170809 start python_selenium
20170809 start python_selenium
 
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
 
テストを書くのが嫌いな君へ #m3dev
テストを書くのが嫌いな君へ #m3devテストを書くのが嫌いな君へ #m3dev
テストを書くのが嫌いな君へ #m3dev
 
.Netconf
.Netconf.Netconf
.Netconf
 
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶjQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
 
海外のSeleniumカンファレンスではどんな発表がされているのか2014
海外のSeleniumカンファレンスではどんな発表がされているのか2014海外のSeleniumカンファレンスではどんな発表がされているのか2014
海外のSeleniumカンファレンスではどんな発表がされているのか2014
 
FriendlyによるWindowsアプリテスト自動化手法 基礎技術編
FriendlyによるWindowsアプリテスト自動化手法 基礎技術編FriendlyによるWindowsアプリテスト自動化手法 基礎技術編
FriendlyによるWindowsアプリテスト自動化手法 基礎技術編
 
無償版Visual StudioでいろいろWeb開発
無償版Visual StudioでいろいろWeb開発無償版Visual StudioでいろいろWeb開発
無償版Visual StudioでいろいろWeb開発
 

Similaire à はじめてのTypescript

20160308 私とVisual Studio
20160308 私とVisual Studio20160308 私とVisual Studio
20160308 私とVisual StudioTakayoshi Tanaka
 
CLR/H 第 79 回勉強会での LT
CLR/H 第 79 回勉強会での LTCLR/H 第 79 回勉強会での LT
CLR/H 第 79 回勉強会での LTShin-ya Koga
 
TypeScript and Visual Studio Code
TypeScript and Visual Studio Code TypeScript and Visual Studio Code
TypeScript and Visual Studio Code Akira Inoue
 
Web Component Framework Urushiのご紹介(OSC2017 Tokyo/Spring)
Web Component Framework Urushiのご紹介(OSC2017 Tokyo/Spring)Web Component Framework Urushiのご紹介(OSC2017 Tokyo/Spring)
Web Component Framework Urushiのご紹介(OSC2017 Tokyo/Spring)YuzoHirakawa
 
Type scriptのいいところ
Type scriptのいいところType scriptのいいところ
Type scriptのいいところKazuhide Maruyama
 
アジャイルプラクティス勉強会in関西
アジャイルプラクティス勉強会in関西アジャイルプラクティス勉強会in関西
アジャイルプラクティス勉強会in関西Fumihiko Kinoshita
 
Adminとうまく共存するためのApex開発Tips
Adminとうまく共存するためのApex開発TipsAdminとうまく共存するためのApex開発Tips
Adminとうまく共存するためのApex開発TipsTakashi Hatamoto
 
本の紹介
本の紹介本の紹介
本の紹介t w
 
チームラボ スマホアプリチームの面白い仕事の作り方
チームラボ スマホアプリチームの面白い仕事の作り方チームラボ スマホアプリチームの面白い仕事の作り方
チームラボ スマホアプリチームの面白い仕事の作り方Wataru Sakashita
 
JavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップ
JavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップJavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップ
JavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップ慎一 古賀
 
Non-Functional Programming in Scala
Non-Functional Programming in ScalaNon-Functional Programming in Scala
Non-Functional Programming in Scalatakezoe
 
Toolkit for CreateJSで作るリッチコンテンツ
Toolkit for CreateJSで作るリッチコンテンツToolkit for CreateJSで作るリッチコンテンツ
Toolkit for CreateJSで作るリッチコンテンツYasunobu Ikeda
 
LT駆動開発04 5分では分からないTypeScriptのなんとか
LT駆動開発04 5分では分からないTypeScriptのなんとかLT駆動開発04 5分では分からないTypeScriptのなんとか
LT駆動開発04 5分では分からないTypeScriptのなんとかKazuya Matsubara
 
我が家のフロントエンド開発事情
我が家のフロントエンド開発事情我が家のフロントエンド開発事情
我が家のフロントエンド開発事情Naoki Yamada
 
最近、実務に導入してみたフロントエンドの技術8つの良かった点と反省点
最近、実務に導入してみたフロントエンドの技術8つの良かった点と反省点最近、実務に導入してみたフロントエンドの技術8つの良かった点と反省点
最近、実務に導入してみたフロントエンドの技術8つの良かった点と反省点Horiguchi Seito
 
Face APIで開発する時に使っている7つの道具
Face APIで開発する時に使っている7つの道具Face APIで開発する時に使っている7つの道具
Face APIで開発する時に使っている7つの道具Kazuyuki Miyake
 

Similaire à はじめてのTypescript (20)

20160308 私とVisual Studio
20160308 私とVisual Studio20160308 私とVisual Studio
20160308 私とVisual Studio
 
CLR/H 第 79 回勉強会での LT
CLR/H 第 79 回勉強会での LTCLR/H 第 79 回勉強会での LT
CLR/H 第 79 回勉強会での LT
 
TypeScript and Visual Studio Code
TypeScript and Visual Studio Code TypeScript and Visual Studio Code
TypeScript and Visual Studio Code
 
Web Component Framework Urushiのご紹介(OSC2017 Tokyo/Spring)
Web Component Framework Urushiのご紹介(OSC2017 Tokyo/Spring)Web Component Framework Urushiのご紹介(OSC2017 Tokyo/Spring)
Web Component Framework Urushiのご紹介(OSC2017 Tokyo/Spring)
 
Type scriptのいいところ
Type scriptのいいところType scriptのいいところ
Type scriptのいいところ
 
Roo
RooRoo
Roo
 
アジャイルプラクティス勉強会in関西
アジャイルプラクティス勉強会in関西アジャイルプラクティス勉強会in関西
アジャイルプラクティス勉強会in関西
 
LT#6 Taskete
LT#6 TasketeLT#6 Taskete
LT#6 Taskete
 
Adminとうまく共存するためのApex開発Tips
Adminとうまく共存するためのApex開発TipsAdminとうまく共存するためのApex開発Tips
Adminとうまく共存するためのApex開発Tips
 
本の紹介
本の紹介本の紹介
本の紹介
 
チームラボ スマホアプリチームの面白い仕事の作り方
チームラボ スマホアプリチームの面白い仕事の作り方チームラボ スマホアプリチームの面白い仕事の作り方
チームラボ スマホアプリチームの面白い仕事の作り方
 
JavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップ
JavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップJavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップ
JavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップ
 
Non-Functional Programming in Scala
Non-Functional Programming in ScalaNon-Functional Programming in Scala
Non-Functional Programming in Scala
 
アンラーニング
アンラーニングアンラーニング
アンラーニング
 
Toolkit for CreateJSで作るリッチコンテンツ
Toolkit for CreateJSで作るリッチコンテンツToolkit for CreateJSで作るリッチコンテンツ
Toolkit for CreateJSで作るリッチコンテンツ
 
LT駆動開発04 5分では分からないTypeScriptのなんとか
LT駆動開発04 5分では分からないTypeScriptのなんとかLT駆動開発04 5分では分からないTypeScriptのなんとか
LT駆動開発04 5分では分からないTypeScriptのなんとか
 
Lt 110416
Lt 110416Lt 110416
Lt 110416
 
我が家のフロントエンド開発事情
我が家のフロントエンド開発事情我が家のフロントエンド開発事情
我が家のフロントエンド開発事情
 
最近、実務に導入してみたフロントエンドの技術8つの良かった点と反省点
最近、実務に導入してみたフロントエンドの技術8つの良かった点と反省点最近、実務に導入してみたフロントエンドの技術8つの良かった点と反省点
最近、実務に導入してみたフロントエンドの技術8つの良かった点と反省点
 
Face APIで開発する時に使っている7つの道具
Face APIで開発する時に使っている7つの道具Face APIで開発する時に使っている7つの道具
Face APIで開発する時に使っている7つの道具
 

はじめてのTypescript