Skip to content

Instantly share code, notes, and snippets.

View Ibro's full-sized avatar

Ibrahim Šuta Ibro

View GitHub Profile
@Ibro
Ibro / package.json
Created February 20, 2016 22:23
Package json with webpack start script
{
"name": "webpack-sample",
"version": "0.0.1",
"description": "Webpack sample - first try",
"main": "",
"scripts": {
"start": "webpack"
},
"repository": {
"type": "git",
@Ibro
Ibro / webpack.config.js
Created February 20, 2016 22:44
Webpack config with dev server
module.exports = {
entry: __dirname + "/app/main.js",
output: {
path: __dirname + "/public",
filename: "app.js"
},
devServer: {
contentBase: "./public",
historyApiFallback: true,
inline: true,
@Ibro
Ibro / package.json
Created February 20, 2016 22:50
Adding webpack-dev-server dependency
{
"name": "webpack-sample",
"version": "0.0.1",
"description": "Webpack sample - first try",
"main": "",
"scripts": {
"start": "webpack-dev-server --progress"
},
"repository": {
"type": "git",
@Ibro
Ibro / decorators-composition.ts
Last active March 25, 2017 12:43
TypeScript decorators composition
class Test {
public name: string;
constructor(name: string) {
this.name = name;
}
@a()
@b()
@c()
export function log(target: Object, propertyKey: string, descriptor: TypedPropertyDescriptor<any>) {
console.log('target:', target);
console.log('propertyKey:', propertyKey);
console.log('descriptor:', descriptor);
// save a reference to the original method
let originalMethod = descriptor.value;
descriptor.value = function (...args: any[]) {
// pre
@Ibro
Ibro / typescript-tuple-types.ts
Last active March 25, 2017 13:11
TypeScript tuple types
let tupleType: [string, number];
tupleType = ['hey', 13];
// tupleType = [5, 'hey']; // Error - '[number, string]' is not assignable to '[string, number]'
// tupleType = ['hey', 'tuple']; // Error - '[string, string]' is not assignable to '[string, number]'
tupleType[3] = 54; // this works well because union type string | number is used for indices outside of known ones
tupleType[4] = 'test'; // works well because it can be string or number, union type
// tupleType[5] = true; // Error - Type 'true' is not assignable to type 'string | number'
@Ibro
Ibro / typescript-type-guards.ts
Last active March 27, 2017 18:35
Type guarding in TypeScript
class Student {
study() {
}
}
class Professor {
teach() {
}
}
function getPerson(n: number): Student | Professor {
if (n === 1) {
@Ibro
Ibro / typescript-union-types.ts
Created March 27, 2017 18:36
Union Types in TypeScript
function print(text: string | string[]): string {
if (typeof text === 'string') {
return text;
}
// compiler now knows that you can use join
// and that variable type is definitely string[]
return text.join(' ');
}
@Ibro
Ibro / typescript-union-types-interfaces.ts
Created March 27, 2017 18:40
Union Types in TypeScript - Interfaces
interface IStudent {
id: string;
age: number;
}
interface IWorker {
companyId: string;
}
type IUnionType = IStudent | IWorker;
@Ibro
Ibro / typescript-intersection-types-overlap.ts
Last active March 28, 2017 06:15
TypeScript intersection types properties overlap error
interface X {
c: string;
d: string;
}
interface Y {
c: number;
e: string
}