天下一Alt js武闘会 typescriptの仕様 よくなった事について
-
Upload
s2otsa -
Category
Engineering
-
view
440 -
download
3
Transcript of 天下一Alt js武闘会 typescriptの仕様 よくなった事について
TYPESCRIPTとはMicrosoft製
最近1.0.0.0が出た
C#開発者が作ってる
TypeScriptからJavaScriptを作るコンパイラを提供
JavaScript + クラスベースOO + 静的型付け
クラス宣言ができるように!アクセス修飾子はpublicとprivateのみ
継承ベースのクラス、protectedが欲しい…
class SampleClass extenx SuperClass{
private name : string ;
constructor( name : string , value? : string ) { super(name) }
public setName( name : string) : string { this.name = nane; }
private getName() : string{ return this.name; }
}
動的型付け => 静的型付け型定義
var value : string = "string"
型推論
左辺側に型を書かなくてもいい場合がある
var value = "string" // string型になる
右辺側に型不明な物を入力するとany型になる
any型になるとあらゆるメソッド、プロパティにアクセスしてもエラーにならない=>バグを見つけづらくなる
function func(inputValue){ var value = inputValue // any型}
動的型付け => 静的型付けハッシュでも出来る
var hoge : { id : number ; name : string ;} = { id : 100 , name : "string"};
名前空間var NS = NS || {}NS.TestObject = function(){}
から
module Hoge{ export module Fuga{ export module Piyo{ export class Bar{ constructor(){ } } // exportを書かなければ外からアクセスが出来ない class InnerClass{ constructor(){ } } } }}
みたいに書けるようになった
関数内でのTHISの巻き上げアロー関数式で書くと、関数内でのthisを参照を変えないよ
うに出来る
JAVASCRIPTの場合var self = this;document.getElementById("hoge").addEventLisntner( "click" , <span class="red">function()</span> { alert(<span class="red">self</span>.id);
// 参照が変わってしまうので //selfに拘束しないと正しく参照できない }} , false)
関数内でのTHISの巻き上げアロー関数式で書くと、関数内でのthisを参照を変えないよ
うに出来る
TYPESCRIPTの場合document.getElementById("hoge").addEventLisntner( "click" , <span class="red">() =></span> { alert(<span class="red">this</span>.id);
// 参照が変わらないのでthisのまま }} , false)
外部ファイル参照外部ファイルを参照する様にしておくと、
コンパイル時にまとめて1ファイルにしてくれる
/// <reference path="SomeClass.ts" />/// <reference path="SomeClass/SomeSubClass.ts" />
カジュアルにクラスプライベートクラスも書けるクラスを書く、名前空間を各コストが下がって書くハードルが下がったファイル分割がしやすくなっているのでクラスファイルが増えるのが苦にならない↓明示的にプロパティを書くので、PerlからJSONで変数を受ける時等に変数名、構造の間違い等が減った