A way to present your TypeScript talk in style!
This plugin adds a copy of Reveal.js above the playground, slides are created using Markdown (via marked) and have the ability to set the text in the playground.
With markdown looking like:
<img src="https://camo.githubusercontent.com/8a8121d9e0fc2678098851e0ef63a36f5c8b199e/68747470733a2f2f7365637572652e6d65657475707374617469632e636f6d2f70686f746f732f6576656e742f612f312f642f612f3630305f3438303532313433342e6a706567">
# TSNYC Jan 2020
---
## What is TypeScript?
TypeScript extends JavaScript by adding types.
TypeScript speeds up your development experience by catching errors and providing fixes before you even run your code.
Any browser, any OS, anywhere JavaScript runs. Entirely Open Source.
---
## `import type`
### Why?
> ### Guaranteed Side-effect free syntax
>
> Tools like Babel, which don’t type-check can be certain with 100% accuracy
whether to remove the import.
<Playground>
// Look at the JS, this isn't included in the output
import {DangerDSLType} from "danger"
declare const myDSL: DangerDSLType
myDSL.bitbucket_cloud
// On the other hand, this one is...
import {danger} from "danger"
danger.git
// But why?
// TS keeps track of whether an import is a "JS" value
// or a TypeScript type.
import {DangerDSLJSONType, message} from "danger"
message
// Babel cannot do this!
// So now Babel knows that it can always skip these
// 'import type' statements
import type {DangerUtilsDSL} from "danger"
// Because they can't be used with "JS" values:
import type {markdown} from "danger"
</Playground>
---
This markdown would turn into 2 slides, where the showing the second would change the Playground's code.
<playground>
element is not visible, so view the source please.index.md
and add some example markdown---
You can change the playground support by putting your code inside the <playground>
HTML element in the slides. This lets you use
markdown code blocks to show the code in the slides:
# Network Requests
There are a few ways to get info from an API
---
# What is `await`?
```ts
const response = await fetch("mysite.com/api/dogs")
#### Build In Slides
Reveal.js supports building out sections in a slide [using fragments]([https://github.com/hakimel/reveal.js#element-attributes](https://revealjs.com/fragments/))
```md
# Anyone can contribute
It takes a village to make a big OSS project
---
# Extra thanks to
- Orta Therox <!-- .element: class="fragment" data-fragment-index="1" -->
- Danger McShane <!-- .element: class="fragment" data-fragment-index="2" -->
---
You can use yarn start
to set up both a copy of rollup to generate the JS, and serve to host it
yarn start
Then set up the TypeScript playground to get a plugin from from http://localhost:5000/index.js
.