Skip to content

Instantly share code, notes, and snippets.

View eddiemoore's full-sized avatar
🤯
Blowing minds

Ed Moore eddiemoore

🤯
Blowing minds
View GitHub Profile
@eddiemoore
eddiemoore / camelcase.ts
Created November 28, 2021 02:04
TypeScript CamelCase type
type CamelCase<T> = T extends `-${infer A}-${infer B}`
? `${A}${Capitalize<CamelCase<B>>}`
: T extends `${infer A}-${infer B}`
? `${A}${Capitalize<CamelCase<B>>}`
: T
@staltz
staltz / comment.md
Created March 15, 2017 15:27
Nested Pick<T, K> in TypeScript 2.2

TypeScript supports Pick to allow you to get a "subset" object type of a given type, but there is no built-in Pick for deeper nested fields.

If you have a function that takes a large object as argument, but you don't use all of its fields, you can use Pick, Pick2, Pick3, etc to narrow down the input type to be only just what you need. This will make it easier to test your function, because when mocking the input object, you don't need to pass all fields of the "large" object.

@diegoconcha
diegoconcha / redux_egghead_notes.md
Last active January 18, 2022 13:23
Redux Egghead.io Notes

###Redux Egghead Video Notes###

####Introduction:#### Managing state in an application is critical, and is often done haphazardly. Redux provides a state container for JavaScript applications that will help your applications behave consistently.

Redux is an evolution of the ideas presented by Facebook's Flux, avoiding the complexity found in Flux by looking to how applications are built with the Elm language.

####1st principle of Redux:#### Everything that changes in your application including the data and ui options is contained in a single object called the state tree

@alxhill
alxhill / scrollspy.coffee
Created October 8, 2013 15:44
Updated version of Angular ScrollSpy
angular.module('jobFoundryDirectives').directive 'spy', ($location) ->
restrict: "A"
require: "^scrollSpy"
link: (scope, elem, attrs, scrollSpy) ->
attrs.spyClass ?= "current"
elem.click ->
scope.$apply ->
$location.hash(attrs.spy)