0
私は、以下に定義されるツリー構造を持っています。 optionsプロパティは、ParentActionの配列またはOptionsの配列のいずれかです。しかし、私はどのようにこれを正しくチェックするためにフロー型チェッカーを取得するか分からない。フローのjavascriptの型チェックは、単一要素型の配列の和集合を持つ再帰的定義をチェックします。
// @flow
type Option = {
label: string,
action: string,
type: 'leaf'
}
type ParentActions = {
prompt: string,
depth: number,
label: string,
options: Array<ParentActions> | Array<Option>,
type: 'parent'
}
type RootActions = {
prompt: string,
options: Array<ParentActions> | Array<Option>,
type: 'root'
}
const thisDoesNotTypeCheckCorrectly : RootActions = {
options: [
{
label: 'string',
action: 'string',
type: 'leaf'
},
{
label: 'string',
action: 'string',
type: 'leaf'
}
],
type: 'root'
};
/* Could not decide which case to select
union type: test.js: 15
Case 1 may work:
array type: test.js: 15
But if it doesn't, case 2 looks promising too:
array type: test.js: 15
Please provide additional annotation(s) to determine whether case 1 works (or consider merging it with case 2):
inferred union of array element types (alternatively, provide an annotation to summarize the array element type) */