DEV Community

Lam
Lam

Posted on

2 1

FlowJS Cheat Sheet

References

[Examples] Function signature

type Callback = (?Error, string) => any

function fetch (callback: Callback) {
  ···
}
Enter fullscreen mode Exit fullscreen mode

[Examples] Examples

var myNumbers: Array<number> = [42]
function foo(): any { return 42 }
var b: boolean = false
var b: ?boolean = false  /* maybe */
var b: string | boolean = false

var a: Class<MyClass> = MyClass
var b: MyClass = new a()
Enter fullscreen mode Exit fullscreen mode

[Advanced features] React

type Props = {
  bar: number,
}

type State = {
  open: boolean,
}

class Foo extends React.Component<Props, State> {
  // Component code
}
Enter fullscreen mode Exit fullscreen mode

[Advanced features] Comment syntax

/*::
  export type Foo = { ... }
*/

function add(n /*: number */) { ... }
Enter fullscreen mode Exit fullscreen mode

[Advanced features] Imports

import type { Person } from '../person'
import typeof Config from '../config'
Enter fullscreen mode Exit fullscreen mode
export type Person = { id: string }
Enter fullscreen mode Exit fullscreen mode

[Advanced features] Functions

const callback: () => void = function () {}
Enter fullscreen mode Exit fullscreen mode
function filter<T> (
  list: Array<T>,
  callback: (item: T) => boolean
): Array<T> {
  ···
}
Enter fullscreen mode Exit fullscreen mode

See: Functions

[Advanced features] Interfaces

interface Jsonable {
  toJSON(): string
}

class Foo {
  toJSON() { return '{}' }
}

(new Foo: Jsonable)
Enter fullscreen mode Exit fullscreen mode

See: Interfaces

[Advanced features] Generic classes

class GenericClass<T> {
  x: T
  constructor (x: T) { ... }
}

var n: GenericClass<number> = new GenericClass(0)
Enter fullscreen mode Exit fullscreen mode

See: Generic classes

[Advanced features] Type aliases

type Tree = {
  foo: string,
  bar: number,
  qux: (foo: string, bar: number) => boolean
}

type Generic<T> = {
  foo: T
}
Enter fullscreen mode Exit fullscreen mode

See: Type aliases

AWS GenAI LIVE image

How is generative AI increasing efficiency?

Join AWS GenAI LIVE! to find out how gen AI is reshaping productivity, streamlining processes, and driving innovation.

Learn more

Top comments (1)

Collapse
 
lamhoanghg profile image
Lam Hoang

great

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay