SlideShare a Scribd company logo
TypeScriptの基礎から
実践・利用事例まで
わかめ まさひろ
1
わかめ まさひろ
GAE
Android
TypeScript
AngularJS
@vvakame
2
• Google App Engine
• Android
• Google Apps
などなど、
技術に特化した会社です。
3
普段の開発環境
http://goo.gl/VBQic
4
• Windows!! ! → VMwareに…
• VisualStudio! → 持ってない
• ゴメンナサイッ ○┐
5
アンケート
• jQueryバリバリです
• JavaScriptバリバリです
• Java or C#バリバリです
• C言語ならまかせろー!
• ハードウェアなら任せろー!
6
TypeScriptって何?
7
Webアプリの時代
• Webアプリがどんどんリッチに
• Google Maps 
• Google Drive 
• Facebook 
• 大規模開発の必要性
• コードたくさん
• 関係者多数
• サーバの土管化 (JSON吐く機械)
8
JavaScript sucks!
• JavaScriptは確かに良い言語だよ
• しかし腐ってる部分もたいへん多い
• packageとかnamespaceとかない
• 綺麗なコード書ける=上級者
• prototypeのOOP??ナニソレ
• 型( ゚"゚)クレ 動的型付とかやだよ!
• なのにブラウザ上で動くのはJSだけ
9
TypeScriptって?
• Anders Hejlsberg開発
• MSのC#の作者
• JavaScriptに変換して実行する
• ECMAScript6を意識
• 未来が来ないなら俺が行く!
• 現行ブラウザは 3.1 がほとんど
• JavaScriptはイケてない!
10
TypeScript the Great
• JSのSuperSet(上位セット)だよ!
• 全てのJSはTypeScriptである
• 可読性の高い変換後JSコード
• moduleある!classもある!継承もある!
• 型もあるよ!
• 既存の資産も捨てなくて済むよ!
• TypeScriptはロックインもされない!
11
型がある
• リファクタリングした時安心
• IDEが賢くなる余地が大きい
• シンボルのリネーム
• メソッドシグニチャの変更
• 100%アクセス可能な要素のみ補完
• 作り始めた時の設計 != 最終的な設計
12
TypeScript以外は?
• まとめて alterJS と呼ばれる
• CoffeeScript 
• Dart 
• JSX 
• Haxe 
13
CoffeeScriptは?
• Better JavaScript 
• インデントベース
• 可読性の高い変換後JSコード
• Railsで標準採用
• classベースのOOP
• 既存の資産も活かせる
• TG社でも割りと使っています
• 惜しむらくは型がない!
14
Dartは?
• Google先生が作ってる
• 将来的にJavaScriptを完全に置き換え
• 全く別言語からの変換
• 変換後JSは人には読めない
• Dartにロックインされる
• IDEが並行で開発されている!!
• 言語仕様が後発なのに芋っぽかった
15
JSXは?
• DeNAが作ってる
• 動作速度最優先!強力な最適化!
• それなりにES6っぽい見た目
• 変換後JSはかなり読めない
• 開発のリソースがちょっと足りなさげ
16
Haxeは?
• OCamlで書かれている
• 言語仕様的にはかなり美しい
• 変換後JSはかなり読めない
• 色々な言語に変換できる
• 優秀なIDEがWindowsにしかない
17
まとめ
CoffeeScript 
僕Python派閥なんで…
Dart 
そもそもJavaScript捨てる予定だしー
JSX 
動作速度至上主義!
Haxe 
僕JS以外にも狙い定めてるし僕の言語仕様
超美しいよ!なんてったってOCamlだしね!
TypeScript 
JavaScript後進の優等生ざます
18
残念ながら…
JavaScriptわからずに開発できるほど甘くはない
JavaScriptも基本教養として学習が必要
TypeScriptを踏み台にするのは大アリ
19
TypeScript基本文法
20
TypeScript基本文法
• JavaScriptのSuperSet (上位セット)
• JSのコードはTypeScriptとして正しい
• ※嘘です
• 型指定の追加が必要
• 既存型にメソッド追加はエラーになる
JSがそのまま動くわけではない…
21
TypeScript基本文法
• 変数名の後に型指定が可能
• if文やfor文などの制御構文は同じ
var hoge:string = "hoge";
if (hoge === "hoge") {
alert("true!");
}
var array = ["hoge", "fuga"];
for (var i = 0; i < array.length; i++) {
alert(array[i]);
}
http://goo.gl/tYdgG
TS
22
var hoge = "hoge";
hoge.arimasen();
hoge = "fuga";
hoge = 1;
var fuga:any = "fuga";
fuga = 1;
変数について
• 型指定の省略も可能
• 右辺から自動的に推論される
• メソッドなどの存在チェックがされる
stringにarimasenメソッドはない
stringにnumberは入れられない
anyはなんでも!なるべく使わない
TS
23
クラスについて
• JSはプロトタイプベースのOOP
• 多くのプログラマに馴染みが薄い…
• TypeScriptはクラスベースなOOP!
class Test {
str:string;
constructor() {
this.str = "new";
}
showMessage():void {
alert(this.str);
}
}
new Test().showMessage();
var Test = (function () {
function Test() {
this.str = "new";
}
Test.prototype.showMessage = function () {
alert(this.str);
};
return Test;
})();
new Test().showMessage();
TS JS
http://goo.gl/G7t0U
24
class Test {
constructor(public str:string = "new"){
}
public showMessage():void {
alert(this.str);
}
}
var test = new Test();
test.str = "Hello";
test.showMessage();
クラスについて
• 省略記法が色々
• コンストラクタの引数をプロパティに
TS
http://goo.gl/7Hi7T
25
var func1 = function (str = "World") {
alert("Hello " + str);
}
var func2 = (str = "World") => {
alert("Hello " + str);
}
func1(); // Hello World
func2("にゃんこ"); // Hello にゃんこ
// func1(1);
関数について
• 書き方色々
• 通常のJSスタイル
• アロー関数式
TS
型が合わないのでエラー http://goo.gl/ArVFH
26
class Sample {
text = "Meow";
test() {
var func1 = function () {
alert(this.text);
};
var func2 = () => {
alert(this.text);
};
func1(); // undefined
func2(); // Meow
}
}
new Sample().test();
アロースタイルは便利
• 1つ外側の this が利用可能
• 不都合がない限りアロースタイルで
TS
Sample.prototype.test = function () {
var _this = this;
var func1 = function () {
alert(this.text);
};
var func2 = function () {
alert(_this.text);
};
func1();
func2();
};
JS
http://goo.gl/K6MU7
一部略
27
複雑なJSのthis事情…
• JavaScriptではthisが何を指すかは結構複雑
• アロースタイルの導入で多少楽ができる
var hoge = {
foo: "bar",
print: function () {
console.log(this.foo);
}
};
// 何かに所属している時のthisなので bar と表示
hoge.print();
var paramour = {foo: "NTR"};
// thisをすり替えられたので NTR と表示
hoge.print.call(paramour);
JS
http://goo.gl/fVMGK参考:Qiita
28
引数について
• 省略可能引数
• デフォルト値付き引数
• 可変長引数
var func1 = (str?:string) => alert(str);
func1();
func1("Hello world");
var func2 = (str = "Hello world") => alert(str);
func2();
func2("Hello world");
var func3 = (...strs:string[]) => alert(strs.join(" "));
func3();
func3("Hello", "world");
http://goo.gl/Bt83S
29
module Sample {
export class Test {
static text = "Hello world";
}
class Internal {
}
}
alert(Sample.Test.text);
var Sample;
(function (Sample) {
var Test = (function () {
function Test() { }
Test.text = "Hello world";
return Test;
})();
Sample.Test = Test;
var Internal = (function () {
function Internal() { }
return Internal;
})();
})(Sample || (Sample = {}));
alert(Sample.Test.text);
モジュールについて
• C# のnamespace
• Java のpackage
• ネストも可能
TS
http://goo.gl/R7IK8
JS
30
interface Animal { walk(); }
interface Cat extends Animal { meow(); }
class NorwegianForestCat implements Cat {
walk() {
alert("四足とことこ");
}
meow() {
alert("にゃーん");
}
brushing() {
alert("毛が長いですごしごし");
}
}
var doWalk = (animal:Animal) => animal.walk();
doWalk(new NorwegianForestCat());
インターフェースについて
• C# や Java の interface と同じ
TS
http://goo.gl/RNH8J
31
構造的部分型
• interface = 満たすべき仕様
• 仕様があってりゃえじゃないか
TSinterface MusicPlayer {
play(title:string);
}
var gameMusicPlayer =
(player:MusicPlayer) => {
player.play("Baba yetu");
}
// MusicPlayerを実装している
class Mp3Player implements MusicPlayer {
play(title:string) {
alert(title + "を再生します。");
}
}
gameMusicPlayer(new Mp3Player());
// MusicPlayerが要求するものを全て持っている
class 路上音楽家 {
play(title:string) {
alert(title + "がご希望ですか!");
}
}
gameMusicPlayer(new 路上音楽家());
// 実はクラスじゃなくても仕様を満たせばOK
gameMusicPlayer({
play: (title:string) => {
alert(title + "の再生")
}
});
http://goo.gl/JpjF3
32
構造的部分型
interface Settings {
method:string;
url:string;
cache?:bool;
}
var doAjax = (settings:Settings) => {
// あれやこれや
};
var settings:Settings = {
method: "POST",
url: "http://topgate.co.jp/"
};
doAjax(settings);
TS
• 実はかなり便利な考え方
• 既存のJavaScriptコードとの互換性
• 引数としての設定値の作成
http://goo.gl/oAArp
33
public, private
• メソッドやプロパティをprivateに
• コンパイル時チェックのみ
• publicもprivateも生成されるJavaScriptに違い
class Sample {
private test1() {}
public test2() {}
}
var sample = new Sample();
sample.test1();
sample.test2();
var Sample = (function () {
function Sample() { }
Sample.prototype.test1 = function () {
};
Sample.prototype.test2 = function () {
};
return Sample;
})();
var sample = new Sample();
sample.test1();
sample.test2();
エラー
TS JS
http://goo.gl/5UTb2
34
class A {
constructor(public str:string, public num:number){}
}
class B {
constructor(private a:A, public bool:bool){}
get str() { return this.a.str; }
get num() { return this.a.num; }
}
var b = new B(new A("vvakame", 29), true);
alert(b.str + " " + b.num + " " + b.bool);
getter, setter
• get, set アクセサが定義できる
• サーバから貰った複数のデータを合成したり
するのに思いのほか便利
TS
http://goo.gl/V5pNv
35
cast
• <any> 最強です 稀に使います
• TypeScriptの利点が失われるので極力使用し
ちゃあダメ!
TSclass A {
}
class B {
}
var b1:B = new A();
var b2:B = <B> new A();
var b3:B = <any> new A();
両方エラー
http://goo.gl/12KMc
36
enum
• 一応あるよー、とだけ…
• わかめ的には文字列で欲しい…
• ↑Java脳 .name() .valueOf(String)
TSenum Sample {
A, B, C, D = 10
}
alert(Sample.B.toString());
http://goo.gl/A9wfZ
37
interface Message {
new (str:string):{
showMessage();
};
}
var func = (messageClass:Message) => {
new messageClass("Hello").showMessage();
};
class MessageImpl {
constructor(public str:string){}
showMessage() { alert(this.str); }
}
func(MessageImpl);
複雑な型
• new できる関数を表す型
• 以下のプロパティを持つ…
TS
http://goo.gl/0Tp8s
38
class Sample {
show(str:string):void;
show(num:number):void;
show(obj:any) {
if (typeof obj === "string") {
alert("string:" + obj);
} else if (typeof obj === "number") {
alert("number:" + obj);
} else {
alert("object:" + obj);
}
}
}
new Sample().show("str");
new Sample().show(1);
// new Sample().show({});
複雑な型
• メソッドのオーバーロード
TS
http://goo.gl/GmJiV
39
実践!TypeScript
40
既存資産の活用
• 型指定ファイルを作成
• .d.ts という拡張子
• http://goo.gl/jrvH5
• 普通のtsコンパイルで.d.tsの出力も可能
• Roadmapでは0.9.xで集積サイトが…
• →2月くらいに記述が消えた(´・#・`)
41
既存資産の活用
interface IScope {
// Documentation says exp is optional, but actual implementaton counts on it
$apply(exp: string): any;
$apply(exp: (scope: IScope) => any): any;
$broadcast(name: string, ...args: any[]): IAngularEvent;
$destroy(): void;
$digest(): void;
$emit(name: string, ...args: any[]): IAngularEvent;
// Documentation says exp is optional, but actual implementaton counts on it
$eval(expression: string): any;
$eval(expression: (scope: IScope) => any): any;
// Documentation says exp is optional, but actual implementaton counts on it
$evalAsync(expression: string): void;
$evalAsync(expression: (scope: IScope) => any): void;
// Defaults to false by the implementation checking strategy
• AngularJS の場合
• angular.d.ts を利用 http://goo.gl/9NrZ4
42
既存資産の活用
• 構造的部分型が大変良い!
• 整合性があっていればちゃんと使える
• JavaScriptの文化に馴染みやすい
interface Settings {
method:string;
url:string;
}
var doAjax = (settings:Settings) => { ... };
doAjax({
url: "http://topgate.co.jp/"
});
TS
不足があればコンパイルエラーになる
http://goo.gl/mv1To
43
開発環境
• VisualStudio 
• 王道
• WebStorm 
• JetBrains社 最近AndroidStudio出した
• Macユーザにオススメ
• わかめはWebStormしかわかりません
44
サンプルコードを試す
• git clone git://github.com/vvakame/
typescript-project-sample.git
• 上記ディレクトリ直下で
• npm install
• bower install
• tsd install jquery
• grunt test
• grunt && node app.js
45
npm
• Node.js用パッケージ管理ツール
• TypeScriptも使ってます!
• 新規コマンドのインストール -g
• プロジェクト単位の依存性解決
• package.jsonに依存関係を書く
46
grunt
• Node.jsベースのタスク自動化ツール
• npmでgrunt用タスクがたくさん!
• プロジェクト内の設定共有も用意に
• grunt-typescript などが便利
• Gruntfile.js に設定を書く
47
bower
• フロントエンドのJavaScript用パッケージ管理
ツール
• bower.json に依存関係の設定を書く
48
tsd
• TypeScriptの型情報定義ファイル .d.ts の管理
ツール
• .d.ts については後述
• まだまだ発展途上…
49
必要なもののインストール
• npm install -g typescript
• npm install -g grunt-cli tsd bower
• phantomjs http://phantomjs.org/
npm は nodebrew や
chocolatey とかで入れる
50
TypeScript利用事例
51
TOPGATE社内利用例
+
on
GAE/Java
52
TOPGATE社内利用例
• 現在1案件で利用中 (完了
• 工数3人月くらい (プログラマ2名
• AngularJS + TypeScript | GAE/J 
• サーバ側UnitTestでクライアント側UnitTest用
のテストデータを生成
• CIサーバではPhantomsJSを活用
53
TOPGATE社内利用例
• サーバとのデータ受け渡し
• サーバ側モデルと 1:1 対応する形でクライア
ント側でもクラスを作成
• get, set アクセサが大変役に立つ
• Genericsが無かったので少し危なっかしい
• エンバグ率が結構高い…
54
TOPGATE社内利用例
• 設計変更やメソッドの変更に強い!
• エラーはコンパイル時に検出できる
• 複数人開発でも安心して開発できる
• JavaScriptよりスキルレベル差が出にくい
• ロジックの実装に集中できる
• データ欠けの出元を追い回す事が減った
55
TOPGATE社内利用例
• JSライブラリを使う時にまず .d.ts 書く所から
始めないといけない率が高い
• AngularJSのHTML記述部分が静的にチェック
できない…
• 割りとよくバグる
• デバッグがJavaScriptより大変
• SourceMapやconcatされたJSが相手…
56
TOPGATE社内利用例
• 総括
• TOPGATE社はTypeScriptを続けるよ!
57
これからのTypeScript
58
0.9の話
• 現行は0.8.3です
• bool 型が boolean になったり
• Genericsが入ったり
• その他色々
• http://goo.gl/d7rYK
• http://goo.gl/IFkxl
59
Generics
class ProcessedHttpPromiseImpl<T> {
constructor(
public promise:ng.IHttpPromise,
public preProcess:(data:any)=>T) {
}
success(callback:(data:T)=>void):ProcessedHttpPromise {
this.promise.success((original:any)=> {
var data:T = this.preProcess(original);
callback(data);
});
return this;
}
error(callback:HttpPromiseCallback):ProcessedHttpPromise {
this.promise.error(callback);
return this;
}
}
var promise: ProcessedHttpPromiseImpl<Sample> = ...;
promise.success((data) => {
// data は Sample としてしっかり型チェックされる
// Genericsがなかったらここは any で扱うしかない…!
data.test();
});
TS
60
• .d.ts 用
• 引数に応じて帰ってくるものの型が変わる
Specialized Signatures
interface Document {
createElement(tagName: string): HTMLElement;
createElement(tagName: "div"): HTMLDivElement;
createElement(tagName: "span"): HTMLSpanElement;
createElement(tagName: "canvas"): HTMLCanvasElement;
}
61
参考
62
参考
• G+ TypeScript 
• http://goo.gl/RINqk 
• わかめはてブ
• http://goo.gl/pUdoD 
• TypeScript クイックガイド
• http://phyzkit.net/typescript/
63
参考
• Playground 
• http://goo.gl/dix4F 
• Spec 
• http://goo.gl/0PjYT 
• DefinitelyTyped 
• http://vvaka.me/WYHzGT 
64
ご清聴ありがとうございました。
教育案件や技術コンサル
もやってます。
65

More Related Content

PDF
AngularJS+TypeScript - AngularJS 1周年記念勉強会
PDF
TypeScript 1.0 オーバービュー
PDF
JavaScriptユーティリティライブラリの紹介
PDF
JavaScript基礎勉強会
PDF
JavaのテストGroovyでいいのではないかという話
PPTX
モテる JavaScript
PDF
JavaScriptことはじめ
PPTX
歌舞伎座Tech Rx会
AngularJS+TypeScript - AngularJS 1周年記念勉強会
TypeScript 1.0 オーバービュー
JavaScriptユーティリティライブラリの紹介
JavaScript基礎勉強会
JavaのテストGroovyでいいのではないかという話
モテる JavaScript
JavaScriptことはじめ
歌舞伎座Tech Rx会

What's hot (20)

PPT
第4回勉強会 Groovyの文法からSpockまで
PDF
覚醒!JavaScript
PDF
C++でCプリプロセッサを作ったり速くしたりしたお話
PDF
Clean Architectureで設計してRxJSを使った話
PDF
Java開発の強力な相棒として今すぐ使えるGroovy
PDF
JavaScript入門-基礎編
PPT
Start!! Ruby
PDF
JVMの中身を可視化してみた
PDF
Javaのログ出力: 道具と考え方
PDF
Kink: プロトタイプベースの俺々 JVM 言語
PDF
JavaScript超入門 基礎
PDF
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
PPTX
C#/.NETがやっていること 第二版
PDF
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
PDF
これからの「async/await」の話をしよう
PPTX
C#言語機能の作り方
PDF
async/awaitダークサイド is 何
PPTX
Chunked encoding を使った高速化の考察
PDF
わかる LT@2
PDF
とあるFlashの自動生成
第4回勉強会 Groovyの文法からSpockまで
覚醒!JavaScript
C++でCプリプロセッサを作ったり速くしたりしたお話
Clean Architectureで設計してRxJSを使った話
Java開発の強力な相棒として今すぐ使えるGroovy
JavaScript入門-基礎編
Start!! Ruby
JVMの中身を可視化してみた
Javaのログ出力: 道具と考え方
Kink: プロトタイプベースの俺々 JVM 言語
JavaScript超入門 基礎
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
C#/.NETがやっていること 第二版
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
これからの「async/await」の話をしよう
C#言語機能の作り方
async/awaitダークサイド is 何
Chunked encoding を使った高速化の考察
わかる LT@2
とあるFlashの自動生成
Ad

Viewers also liked (20)

PDF
Visual Studioで始めるTypeScript開発入門
PDF
よりよい開発を目指すための、プロセス&ツール活用
PPTX
.NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE)
PDF
50分で掴み取る ASP.NET Web API パターン&テクニック
PDF
Build Insider OFFLINE vol.01 スマートフォンサイトのこれから ~ レスポンシブ・Webデザインは救世主となり得るか
PDF
最近、リアルタイムWebが面白い
PPTX
秒速一億円
PDF
20140823 LL diver Angular.js で構築した note に関して
PDF
[予告篇] みんなで同時プレイするクイズWebアプリでCodeQuizに挑戦!
PPTX
「それでも人生にイエスと言う」を読んで
PDF
Introduction of "MarkdownPresenter"
PDF
AngularJS 2.0 Jumpstart
PPTX
HTML5がもたらすアプリ開発へのインパクト
PDF
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
PPT
20130921レジュメ2
PPTX
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んで
PDF
More Azure Websites! - JAZUGさっぽろ "きたあず" 第5回勉強会ライトニングトーク
PDF
CLR/H#74 LT IT勉強会発表用イチオシツール
PPTX
Reactive Programming
PPTX
「それでも人生にイエスと言う」を読んで
Visual Studioで始めるTypeScript開発入門
よりよい開発を目指すための、プロセス&ツール活用
.NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE)
50分で掴み取る ASP.NET Web API パターン&テクニック
Build Insider OFFLINE vol.01 スマートフォンサイトのこれから ~ レスポンシブ・Webデザインは救世主となり得るか
最近、リアルタイムWebが面白い
秒速一億円
20140823 LL diver Angular.js で構築した note に関して
[予告篇] みんなで同時プレイするクイズWebアプリでCodeQuizに挑戦!
「それでも人生にイエスと言う」を読んで
Introduction of "MarkdownPresenter"
AngularJS 2.0 Jumpstart
HTML5がもたらすアプリ開発へのインパクト
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
20130921レジュメ2
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んで
More Azure Websites! - JAZUGさっぽろ "きたあず" 第5回勉強会ライトニングトーク
CLR/H#74 LT IT勉強会発表用イチオシツール
Reactive Programming
「それでも人生にイエスと言う」を読んで
Ad

Similar to Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで (20)

PDF
TypeScript と Visual Studio Code
PDF
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
PDF
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
PDF
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
PDF
TypeScriptへの入口
PDF
TypeScriptは明日から使うべき
PDF
TypeScript 言語処理系ことはじめ
PPTX
大人のお型付け
PDF
ng-japan 2015 TypeScript+AngularJS 1.3
PDF
"今" 押さえておきたい! Web アプリ開発の技術トレンドとツールの進化
PDF
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
PDF
TypeScript 勉強会
PPTX
Nds meetup8 lt
PDF
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
PDF
ECMAScript 6 Features(PDF 版)
PDF
JSX / Haxe / TypeScript
PDF
TypeScript & 関数型講座 第2回 TypeScript という言語
PDF
JavaScript.Next
PDF
TypeScript超入門
PPTX
JavaScript使いのためのTypeScript実践入門
TypeScript と Visual Studio Code
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScriptへの入口
TypeScriptは明日から使うべき
TypeScript 言語処理系ことはじめ
大人のお型付け
ng-japan 2015 TypeScript+AngularJS 1.3
"今" 押さえておきたい! Web アプリ開発の技術トレンドとツールの進化
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
TypeScript 勉強会
Nds meetup8 lt
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
ECMAScript 6 Features(PDF 版)
JSX / Haxe / TypeScript
TypeScript & 関数型講座 第2回 TypeScript という言語
JavaScript.Next
TypeScript超入門
JavaScript使いのためのTypeScript実践入門

More from Masahiro Wakame (20)

PDF
GoCon2016 spring 自作Webフレームワーク uconを作った話
PDF
GoCon 2015 Summer GoのASTをいじくって新しいツールを作る
PDF
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
PDF
Google Glass XE17版
PDF
Google Glassでできること XE12版 最新開発情報 Mirror API & GDK
PDF
コンパイラ指向ReVIEW
PDF
20ヶ月を取り戻す Dart flight school
PDF
TypeScript 独習会
PDF
Google Glassでできること XE11版 最新開発情報 Mirror API & GDK
PDF
CEATEC Glassware(Google Glassアプリ)開発の指南と開発事例
PDF
ReVIEW & CI - ChefでCI環境構築
PDF
Firefox OS勉強会 2nd TypeScript+AngularJS
PDF
俺とお前とGoogleware
PDF
Datastoreへのアクセスを楽してMemcacheアクセスに置き換えるライブラリ作った
PDF
TypeScript Hands-on
PDF
わかめモナ化LT
PDF
NFC app launcher
PDF
函館IKA Eclipse活用術
PDF
函館IKA ICS開発情報
PDF
JavaScript 再入門2
GoCon2016 spring 自作Webフレームワーク uconを作った話
GoCon 2015 Summer GoのASTをいじくって新しいツールを作る
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
Google Glass XE17版
Google Glassでできること XE12版 最新開発情報 Mirror API & GDK
コンパイラ指向ReVIEW
20ヶ月を取り戻す Dart flight school
TypeScript 独習会
Google Glassでできること XE11版 最新開発情報 Mirror API & GDK
CEATEC Glassware(Google Glassアプリ)開発の指南と開発事例
ReVIEW & CI - ChefでCI環境構築
Firefox OS勉強会 2nd TypeScript+AngularJS
俺とお前とGoogleware
Datastoreへのアクセスを楽してMemcacheアクセスに置き換えるライブラリ作った
TypeScript Hands-on
わかめモナ化LT
NFC app launcher
函館IKA Eclipse活用術
函館IKA ICS開発情報
JavaScript 再入門2

Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで