gajus / gajus/flow-runtime

implement "implements" in type annotations

Open
#127 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
797
Forks
49
PR merge metrics
No merged PRs in 30d

Description

This is a:
- [ x ] Feature Request

Which concerns:

- [ x ] flow-runtime
- [ x ] babel-plugin-flow-runtime

### What is the current behaviour?

The interfaces a class implements are missing from its type annotation.E.g.:

```
interface Serializable {
serialize(): string;
}

class Foo implements Serializable {
serialize() { return '[Foo]'; } // Works!
}
```
transforms to
```
@t.annotate(t.class('Foo', t.method('serialize')))
class Foo {
constructor() {
Serializable.assert(this);
}

serialize() {
return '[Foo]';
} // Works!
}
```

### What is the expected behaviour?

The interfaces declared by "implements" would be included in the type annotation.

### Which package versions are you using?

Example is from whatever is running here: https://codemix.github.io/flow-runtime/#/try

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.