私は、次の定数文字列があるとしましょう:フロー定数文字列とタイプ、および依存型
export default const FOO = 'FOO'
は、私はそうのように流れ、注釈付きのファイルでこれをインポート言う:
import FOO from '../consts/Foo'
私は次に機能を持っています:
const example = (foo : string) : {| type: FOO, foo: string |} => {
return {type: FOO, foo: foo}
}
これはとです。TypeCheckません。だから私の質問はあり
6: const example = (foo : string) : {| type: FOO, foo: string |}=> {
^^^^^^^^^^^^^^ string. Ineligible value used in/as type annotation (did you forget 'typeof'?)
6: const example = (foo : string) : {| type: FOO, foo: string |}=> {
^^^^^^^^^^^^^^ FOO
:
1)それはどのように私はこの現象を再現することができ、フロータイプで定数を使用することは可能でしょうか?
2)フローで依存型を実行することは可能ですか?たとえば、タイプによって、返される文字列がexample
関数に渡される文字列と同じである必要があります。
EDIT:パート2への明確化:それはexample
関数に渡されたfoo
パラメータが実際に戻りオブジェクト内のfoo
キーで文字列と同じ文字列であることを示す何らかの方法ですることは可能ですか?または、入力と出力の長さが同じであることを宣言することができます(たとえば、シフト暗号関数)。または同じ文字の並べ替えを含むと言う? (シャッフル用)。
https://en.wikipedia.org/wiki/Dependent_type
'FOO'型に' 'FOO''を指定したい場合、それを宣言する必要があります。それ以外の場合は単なる文字列です。オブジェクトの場合は、エラーのように 'type:FOO '型を実行します。私はあなたがあなたの2)の点で尋ねているものはかなり確信していません。次に、同じ文字列値を持つ2つのプロパティを持つオブジェクトになります。 – loganfsmyth