2017-05-26 3 views
0

Ich habe eine Variable, die ein Array von Objekten, ein Array von Zahlen, ein verschachteltes Array von Objekten oder ein verschachteltes Array von Zahlen sein könnte. Meine Funktion beschäftigt sich mit jedem dieser Fälle der Reihe nach, aber ich versuche, meinen Code-Typ sicher zu machen, Facebook-Fluss verwendend, und ich erhalte einen inkompatiblen Typfehler.Inkompatibler Typ Fehler Facebook Fluss

type Data = number[] | {}[] | Array<{}[]> | Array<number[]> 

function parseData(data = Data) { 
    ... 
} 

Wenn ich Flow laufen bekomme ich

build/js/helpers.js:2 
    2: type Data = number[] | {}[] | Array<{}[]> | Array<number[]> 
       ^^^^^^ number. This type is incompatible with 
    2: type Data = number[] | {}[] | Array<{}[]> | Array<number[]> 
          ^^ object type 

build/js/helpers.js:2 
    2: type Data = number[] | {}[] | Array<{}[]> | Array<number[]> 
       ^^^^^^ number. This type is incompatible with 
    2: type Data = number[] | {}[] | Array<{}[]> | Array<number[]> 

build/js/helpers.js:2 
    2: type Data = number[] | {}[] | Array<{}[]> | Array<number[]> 
       ^^^^^^ number. This type is incompatible with 
    2: type Data = number[] | {}[] | Array<{}[]> | Array<number[]> 
                 ^^^^^^^^ array type 

build/js/helpers.js:2 
    2: type Data = number[] | {}[] | Array<{}[]> | Array<number[]> 
          ^^ object type. This type is incompatible with 
    2: type Data = number[] | {}[] | Array<{}[]> | Array<number[]> 
       ^^^^^^ number 

build/js/helpers.js:2 
    2: type Data = number[] | {}[] | Array<{}[]> | Array<number[]> 
             ^^^^ array type. This type is incompatible with 
    2: type Data = number[] | {}[] | Array<{}[]> | Array<number[]> 
       ^^^^^^ number 

build/js/helpers.js:2 
    2: type Data = number[] | {}[] | Array<{}[]> | Array<number[]> 
                 ^^^^^^^^ array type. This type is incompatible with 
    2: type Data = number[] | {}[] | Array<{}[]> | Array<number[]> 
       ^^^^^^ number 

Ich verstehe, dass es eine Variable sagt, dass eine Reihe von Zahlen ist, kann nicht ein Array von Objekten sein, und weder kann ein Array von Arrays, aber Ich kann diese Variable nicht eingeben.

Antwort

1

Sie verwenden den Typ falsch in Ihren Parametern. Also diese Zeile:

function parseData(data = Data) { 

sollte mit dieser Zeile ersetzt werden:

function parseData(data: Data) { 

Wenn Sie den Zuweisungsoperator verwenden, können Sie grundsätzlich einen Standardwert für den Parameter definieren. Anstelle des Zuweisungsoperators müssen Sie das Doppelpunktzeichen verwenden, um den Parameter eines bestimmten Typs zu markieren.

Wenigstens bekomme ich keine Fehler mehr in der Online-Flow-Checker here

Verwandte Themen