2015年07月03日

TypeScriptとstructural typing、nominative typing

TypeScriptは、structural typingですが、structural typingとnominative typingについて確認し、コードサンプルを確認しました。
(1)structural typingとnominative typing

1)structural typing

・同じ外部構造(インタフェース、特に暗黙的なもの)を持つ値を同じ型であるとするもの。

・明示的に名前を指定する必要がなく、構造がマッチする型であれば利用可能。

・同じ属性を有する同等の型を作成することが可能。

・既存のコードを変更せずに、同等の型を導入できる。

・外部クラスから継承せずに外部コードに渡す事が出来る。

・既存のコードを変更せずに新しいスーパータイプを作成できる。

・TypeScriptなど。

2)nominative typing

・型宣言の構文からのみ型の同一性を判定する。型が同じ「名前」を持たなければならない。

・インタフェースを実装する場合、明示的にインタフェース名を指定して宣言しなければならない。

・偶然同じ属性を有する同等の型を作成することを防ぐ事が出来る。

・C#やJavaなど。

(2)TypeScriptはstructural typing

例)

interface Named {
name: string;
}

class Person {
name: string;
}

var p: Named;
// OK, because of structural typing
p = new Person();



posted by ほのおーと at 07:00| Comment(0) | TypeScript | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。