反応コーヒー(http://yang.github.io/reactive-coffee/api.html)用のTypescript .dsファイルの作成に取り組んでいますが、flatten
関数の型シグニチャを調べようとしています。例:再帰的なFlatten関数のTypeScriptシグニチャ
flatten(rx.array([1, [2, 3], rx.cell(4), rx.array([rx.cell([5, rx.cell(6)])])]))
// -> [1,2,3,4,5,6]
flatten([1, [2, 3], rx.cell(4), rx.array([rx.cell([5, rx.cell(6)])])])
// -> [1,2,3,4,5,6]
私はとのトラブルに実行している問題は、XSの正しい活字体の型シグネチャは何ですか?これまでのところ、私はこのようなものを作ってみた:
interface NestableCell<T> extends ObsCellInterface<T | NestableCell<T>> {}
type Flattenable<T> = (
Array<T| NestableCell<T | Flattenable<T>> | Flattenable<T>> |
ObsArrayInterface<T | NestableCell<T | Flattenable<T>> | Flattenable<T>>
)
function flatten<T>(xs:Flattenable<T>) => ObsArrayInterface<T>
ObsCellInterface
とObsArrayInterface
はそれぞれ、RCのObsCell
とObsArray
オブジェクトのバージョンを入力しています。
残念ながら、Typescriptは再帰型のみを許可し、再帰的なインターフェイスは許可しません。そして、現時点では、そのタイプをどのようにインタフェースに変換するのか本当に分かりません。