TypeScriptの型の機能を拡張しようとしていますが、実際の型であればOKですが、インターフェイスの関数を宣言しようとすると同じ方法で他の型で実装されていると、コンパイラエラーが発生します。TypeScriptに入力する関数を追加する
interface Set<T> {
min(): T;
}
Set.prototype.min = function() {
return 0;
}
をしかし、この1つはない:ここで
は作品例です
ここinterface IterableIterator<T> {
min(): T;
}
IterableIterator.prototype.min = function() {
return 0;
}
私が実装error TS2693: 'IterableIterator' only refers to a type, but is being used as a value here.
上のコンパイラエラーを取得します。
IterableIterator
を実装しているすべてのインターフェイスに適用される/利用可能な関数を定義して実装する正しい方法は何ですか?
セットは、インターフェイスではなくes6の 'set'を指します。コンパイラのエラーと同様に、型を変数として使用しています。 –
@ShanevandenBogaard私はそれほど推測しましたが、インターフェイスのすべての実装で定義されるTypescriptで関数を作成するにはどうすればよいですか? –
インターフェイスはjavascriptのものではなく、コンパイルされるとソースから削除されます。定義されたメソッドや属性を格納するための値を提供するだけです。これはインターフェイスをどのように扱うべきかではありません。ただし、抽象クラスを作成してそこにメソッドを実装することも、プロトタイプを使用することもできます。それが事前定義された実装を変数に適用する唯一の方法です。 –