Shota Kubota
With these developments, we’re starting to see applications of unprecedented size written with JavaScript, despite the fact that creating large-scale JavaScript applications is hard. TypeScript makes it easier.
変数や引数などに型を指定できる
// 変数を宣言する際に、変数名のすぐ後ろにコロンと型を書くことにより、型が指定できる
var name: string = "hoge";
// 型指定を省略した場合は、型推論によって変数の型が決まる
var name = "hoge"; // 型推論により var name: string = "hoge"; と同じ意味になる
var age = 30; // 型推論により var name: number = 30; と同じ意味になる
// function文やfunction式では、引数と返り値に型を指定可能
function parseNumber(str: string) : number {
// hogehoge
}
var parseNumber: (str: string) => number = function (str: string): number {
// hogehoge
};
クラスっぽいことデモ(参考: JavaScript にクラスは作れますか? - hogehoge @teramako)
module Say {
export class Message {
constructor(public message: string) {
this.message = message;
alert(this.message);
}
}
}
var message = new Say.Message("Hello, world");
interface IPerson {
name: string;
birthday: Date;
hello: () => void;
}
class Person implements IPerson {
name: string = "kubosho_";
birthday: Date = new Date("10/11/1989");
hello: () => void = function () {
alert("My name is " + this.name);
};
}
var person = new Person();
person.hello();
機能が複数あり、かつそれぞれが独立しているようなサービス
(ここのコードは共通で使いたいけど、ここのコードは個別のページで使いたい的な)
一つのJSファイルに全ての機能が書かれていたら、引き継ぐ人が死ぬといった時にTypeScriptを使うといいかもしれないです
上記のような場面では、素のJavaScriptで書いたほうがたぶん早いです
ご静聴ありがとうございました