facebook / facebook/flow

Create a "Comparable" interface

Abierto
#388 4 comentarios 3 reacciones 0 asignados Ver en GitHub
feature request
Lenguaje dominante
Rust
Estrellas
22.3k
Forks
1.9k
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

This code:

``` javascript
/** @flow */

class Foo {
val: T;

lessThan(other: Foo) {
return this.val < other.val; // XXX flow doesn't like this comparison
}
}
```

produces the following error:

```
baderror.js:3:15,20: number
This type is incompatible with
baderror.js:7:12,31: string

baderror.js:3:22,27: string
This type is incompatible with
baderror.js:7:12,31: number

Found 2 errors
```

In most type systems, the `T` in `other: Foo` would be the same `T` as for the current class. This would result in number↔number and string↔string comparisons, but never number↔string.

Removing the `` in `other: Foo` makes the error go away, but now I have no confidence that Flow is actually checking anything.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.