Array.map
метод в lib.es5.d.ts
аннотирован как
map<U>(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[];
Существует общий тип U
для представления типа элементов массива, возвращаемых этим методом после отображения.
Когда Flow жалуется на Missing type annotation for `U`.
, это наиболее вероятно, потому что Flow по какой-то причине не может автоматически определить этот тип, и вы должны объявить его явно:
function XXX(YYYY): (some_type | number)[] { // <-- you should explicitly declare return type here
...
return range.map(function(value: some_type|string) { // <--- probably, more explicit typehint here as well
if (typeof value !== 'string') {
return value; // <-- return value is a 'some_type' here
}
if (/deg$/.test(value)) {
const degrees = parseFloat(value) || 0;
const radians = degrees * Math.PI / 180.0;
return radians; // <-- return value is 'number' here
} else {
// Assume radians
return parseFloat(value) || 0; // <-- return value is 'number' here
}
});
}
Остальные ошибки в основном происходят изОпределения типов React, так как они имеют неполное покрытие для существующих свойств объектов элементов / узлов DOM (например, readonly
и т. Д.) И типовых указаний ReactNative, поскольку они часто являются неполными.