Skip to content

Commit

Permalink
Feature new sheets
Browse files Browse the repository at this point in the history
  • Loading branch information
rstacruz committed Aug 28, 2017
1 parent 7121fa1 commit 4f8c49d
Show file tree
Hide file tree
Showing 17 changed files with 239 additions and 176 deletions.
1 change: 1 addition & 0 deletions Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,5 +38,6 @@ title: React.js
category: React
layout: 2017/sheet # 'default' | '2017/sheet'
ads: false # Add this to disable ads
updated: 201708 # To show in the updated list
---
```
2 changes: 2 additions & 0 deletions _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,3 +69,5 @@ category_names:

# https://help.github.com/articles/repository-metadata-on-github-pages/
repository: rstacruz/cheatsheets

last_updated: 201708
10 changes: 10 additions & 0 deletions _layouts/2017/home.html
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,16 @@ <h1>
{% endif %}
{% endfor %}

<h2 class='category item' data-js-searchable-header>
<span>Recently updated</span>
</h2>

{% for page in site.pages %}
{% if page.updated >= site.last_updated %}
{% include 2017/pages-list-item.html page=page class='article item' %}
{% endif %}
{% endfor %}

{% for category in site.category_names %}
<h2 class='category item' id='{{ category | downcase | replace: " ", "-" }}' data-js-searchable-header>
<span>{{ category }}</span>
Expand Down
2 changes: 1 addition & 1 deletion _layouts/redirect.html
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<!DOCTYPE html>
{% assign target = {{ page.redirect.to | remove: '.html' | replace: 'cheatsheets/cheatsheets', 'cheatsheets' %}
{% assign target = page.redirect.to | remove: '.html' | replace: 'cheatsheets/cheatsheets', 'cheatsheets' %}
<html lang="en-US">
<meta charset="utf-8">
<title>Redirecting…</title>
Expand Down
3 changes: 0 additions & 3 deletions bash.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@ title: Bash scripting
category: CLI
layout: 2017/sheet
tags: [Featured]
redirect_from:
- /sh
- /sh.html
---

Getting started
Expand Down
1 change: 1 addition & 0 deletions cron.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: Cron
category: CLI
layout: 2017/sheet
updated: 201708
---

## Format
Expand Down
2 changes: 2 additions & 0 deletions elixir.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
title: Elixir
category: Elixir
layout: 2017/sheet
tags: [New]
updated: 201708
---

## Reference
Expand Down
5 changes: 5 additions & 0 deletions es2015.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
title: ES2015
category: JavaScript
redirect_to: /es6
---
5 changes: 5 additions & 0 deletions es2016.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
title: ES2016
category: JavaScript
redirect_to: /es6
---
5 changes: 5 additions & 0 deletions es2017.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
title: ES2017
category: JavaScript
redirect_to: /es6
---
4 changes: 2 additions & 2 deletions es6.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
title: ES2015
title: ES2015+
category: JavaScript
layout: 2017/sheet
ads: true
tags: [Featured]
---

### Promises
Expand Down
1 change: 1 addition & 0 deletions exunit.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
title: ExUnit
category: Elixir
layout: 2017/sheet
updated: 201708
---

### Test cases
Expand Down
201 changes: 201 additions & 0 deletions flow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,201 @@
---
title: Flow
layout: 2017/sheet
updated: 201708
---

### Simple failing example

```js
/* @flow */

function foo(x) { return x * 10 }
foo('Hello, world!')
```

### Annotations

```js
// Simple
function foo(x: string, y: number): string { ... }
```

```js
// Arrays
function total(numbers: Array<number>) { ... }
```

### Primitives

| Type | Description |
| --- | --- |
| `any` | |
| `boolean` | |
| `mixed` | |
| `number` | |
| `string` | |
| `void` | undefined |
| `null` | null (but not undefined) |
| --- | --- |
| `{a: Number}` | Object with a shape |
| `[any, number]` | Tuples (fixed-length arrays) |
| --- | --- |
| `Array<T>` | |
| `Class<T>` | |
| `Function` | |
| `Object` | |
| --- | --- |
| `?number` | Maybe (number, void, null) |
| `a | b` | Union types |

### Dynamic keys

```js
type Items = {
[key: string]: Item
}
```

See: [Dynamic object keys](https://flow.org/docs/objects.html#objects-as-maps)

### Enums

```js
type Suit = "Diamonds" | "Clubs" | "Hearts" | "Spades"

const countries = {
US: "United States",
IT: "Italy",
FR: "France"
}

type Country = $Keys<typeof countries>
```

See: [Enums](https://flow.org/docs/utility-types.html#keyst)

### Type aliases

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

type Generic<T> = {
foo: T
}
```

See: [Type aliases](https://flow.org/docs/quick-reference.html#type-aliases)

### Generic classes

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

var n: GenericClass<number> = new GenericClass(0)
```

See: [Generic classes](https://flow.org/docs/quick-reference.html#generics)

### Interfaces

```js
interface Jsonable {
toJSON(): string
}

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

(new Foo: Jsonable)
```

See: [Interfaces](https://flow.org/docs/quick-reference.html#interfaces)

### Functions

```js
const callback: () => void = function () {}
```

```js
function filter<T> (
list: Array<T>,
callback: (item: T) => boolean
): Array<T> {
···
}
```

See: [Functions](https://flow.org/docs/functions.html)

### Imports

```js
import type { Person } from '../person'
import typeof Config from '../config'
```

```js
export type Person = { id: string }
```

### Comment syntax

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

function add(n /*: number */) { ... }
```

### React

```js
React$Element<any>
```

```js
class Foo extends React.Component {
/*:: state: { open: boolean } */
/*:: props: { open: boolean } */
}
```
## Examples

### Examples

```js
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()
```

### Function signature

```js
var add: ((num1: number, num2: number) => number) = function (num1, num2) {
return num1 + num2
}
```

You don't need to do this! It's inferred. This is better:

```js
var add = function (num1: number, num2: number) {
return num1 + num2
}
```
Loading

0 comments on commit 4f8c49d

Please sign in to comment.