Skip to content

Instantly share code, notes, and snippets.


Yo Lulkin joaomilho

  • Berlin, Germany
View GitHub Profile
joaomilho / peano.ts
Created Nov 3, 2020
Fully typed arithmetics with TypeScript 😨
View peano.ts
type Nat = ["S", Nat] | ["Z"];
type Succ<N extends Nat> = ["S", N]
type S<N extends Nat> = Succ<N>
type Prev<N extends Nat> = N[1]
type Z = ["Z"]
type Zero = Z
type One = S<Z>
type Two = S<S<Z>>
joaomilho / log.ts
Last active Mar 20, 2021
A printf with dependant types in TypeScript, similar to Idris (
View log.ts
type FieldType<Field> =
's' extends Field ? string :
'f' extends Field ? number :
'i' extends Field ? number :
'd' extends Field ? number :
'o' extends Field ? HTMLElement :
'O' extends Field ? object :
'c' extends Field ? string :
hediet /
Last active Jul 28, 2022
Proof that TypeScript's Type System is Turing Complete
type StringBool = "true"|"false";

interface AnyNumber { prev?: any, isZero: StringBool };
interface PositiveNumber { prev: any, isZero: "false" };

type IsZero<TNumber extends AnyNumber> = TNumber["isZero"];
type Next<TNumber extends AnyNumber> = { prev: TNumber, isZero: "false" };
type Prev<TNumber extends PositiveNumber> = TNumber["prev"];
morsdyce /
Last active Mar 7, 2019
Introduction to BDSM - ReactiveConf Lightning talk proposal

This is a proposal for a lightning talk at the Reactive 2016 conference.

🌟Star this gist if you want to see it on the conference.

Introduction to BDSM

Every day we work with multiple teams to build our products, communication and sync are key factors to deliver your product on time without compromising quality.

In this talk I will introduce BDSM a new mocking tool that will change the way you coordinate between client and server teams minimizing friction allowing each team to work at its own pace while keeping in sync.

SteveBenner / conditional-html-tags.rb
Last active Oct 18, 2019
Helper [tag] for generating one or more HTML tags inside IE conditional comments, in the style of HTML5 Boilerplate
View conditional-html-tags.rb
# This is a special tag helper that generates multiple HTML tags in the style of HTML5 Boilerplate,
# meaning each is placed within an IE conditional comment and has special classes applied to it.
# One tag is created for each version of Internet Explorer specified in the first argument.
# @see
# @note This helper requires a Slim block!
# @note The output of this helper must be HTML escaped!
# @param [Range] ie_versions A range of IE versions to generate code for, in which the
coolaj86 /
Last active Aug 10, 2022
How to publish packages to NPM

Getting Started with NPM (as a developer)

As easy as 1, 2, 3!


  • Aug, 08, 2022 update config docs for npm 8+
  • Jul 27, 2021 add private scopes
  • Jul 22, 2021 add dist tags
  • Jun 20, 2021 update for --access=public
  • Sep 07, 2020 update docs for npm version