2017-10-27 14 views
0

私は必要とするいくつかのキーを持つオブジェクトを宣言できるようにしたいと思います。キーのタイプであるが、キーの名前ではない)。これは流れで可能ですか?フロータイプに対して 'rest'パラメータをどうやって行うのですか

type BlahType = { 
    blah: string, 
    ...rest: Array<string>, // this is what I would expect to be able to do 
}; 

const myFunction = (blah: string, ...args: Array<string>): BlahType => { 
    const otherConstants = args.reduce(
    (obj, arg) => Object.assign(obj, { [arg]: arg }), 
    {}, 
); 

    return { 
    BLAH_CONSTANT: blah, 
    ...otherConstants, 
    }; 
}; 
+0

あなたが'をお探しですか? – loganfsmyth

+0

これは、 'string'型の値を持つ任意の数の' string'型キーを許可しますか?もしそうなら、それは間違いなく私が探しているものです。 – Mike

+0

あなたのオブジェクトのすべての小道具が分からない場合は、通常のサブタイプを使用してください。フローの[幅のサブタイプ化](https://flow.org/en/docs/lang/width-subtyping/)とデフォルトの多形性の種類と呼ばれています。他の小道具へのアクセスを維持する必要がある場合は、[bounded subtyping](https://flow.org/blog/2015/03/12/Bounded-Polymorphism/)を使用することもできます。 – ftor

答えて

0

あなたの戻り値の型は{ blah: string, [string]: string }次のようになります。ここでは

はそれが使用される方法の例です。

(あなたがflow.org/try上で見ることができるように)ですから、次のコードを持って:{:文字列、[文字列]:文字列何とか} `

type BlahType = { 
    blah: string, 

    [string]: string, 
}; 

const myFunction = (blah: string, ...args: string[]): BlahType => { 
    const otherConstants = args.reduce(
    (obj, arg) => Object.assign(obj, { [arg]: arg }), 
    {}, 
); 

    return { 
    blah, 

    ...otherConstants 
    }; 
}; 
関連する問題