[過去ログ] TypeScript part2 [転載禁止]©2ch.net (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
66
(1): デフォルトの名無しさん [sage] 2015/10/24(土) 17:46:56 ID:lLID1QIl(2/2) AAS
>>64
64(3): デフォルトの名無しさん [sage] 2015/10/24(土) 14:48:22 ID:otxAXsrh(3/3) AAS
>>59
class Base {
equals(other: this): boolean { return other.name === "Derived"; }
}
class Derived extends Base {
name = "Derived";
}
let derived = new Derived();
console.log(derived.equals(derived));

だと、1.7でも(正確には1.7.0-dev.20151016)
test.ts(3,18): error TS2339: Property 'name' does not exist on type 'Base'.
って、ポリモらないけど…なんでなん?
そういった使い方は無いと思うよ。その場合はジェネリックを使うといい
class Base {
equals<T extends { name: string; }>(other: T): boolean { return other.name === "Derived"; }
}
67
(2): デフォルトの名無しさん [sage] 2015/10/25(日) 00:25:48 ID:1wUVsAr0(1) AAS
>>66
外部リンク:github.com
このページのサンプルコードで>>64みたいなのがあったよ
>>62
62(1): デフォルトの名無しさん [sage] 2015/10/24(土) 14:26:29 ID:otxAXsrh(1/3) AAS
>>59
class Base {
getThis(): Base { return this; }
}
class Derived extends Base {
print(): void { console.log('Derived'); }
}
let derived = new Derived();
derived.getThis().print(); // 1.6.2だとBaseにprint()がねーよと怒られる
1.7だと
getThis(): this { return this; }
にする事でコンパイル通ってちゃんと実行も出来る

って事は理解したけど、equals(other: this)のthisって自分の型名のエイリアス
として使えるから便利って事であってるの?
の戻り値バージョンは直感的で使い易いし良いんだけど
引き数バージョンがポリモらないのは何か変だなとは思う
ま、ジェネリックがあるから困らないけど1.7がちゃんとリリースされたら
また確認してみよう
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.223s*