Skip to content

Instantly share code, notes, and snippets.

@noveogroup-amorgunov
noveogroup-amorgunov / classes-es6.md
Created December 27, 2017 09:52
Javascript classes ES6

Classes ES6

Прототипы

JS изначально проектировался как очень простой и легкий язык, в нем заложено много концепций, которые делает язык не похожим на другие.

Например, иерархия объектов в JS строиться на основе прототипов и прототипного наследования. Что бы понять как это устроено, нужно уделить довольно много времени, и так как cейчас прототипы при разработке используются очень редко, мы их рассматривать не будем, но вы можете почитать как они работают в онлайн учебнике: learn.javascript

Раньше разработчики с помощью них создавали конструции, подобные классам в других ОО-языках. На слайде пример создая класса с использованием старого синтаксиса, используя прототип и функцию.

{
"compilerOptions": {
"target": "es2017",
"module": "commonjs",
"moduleResolution": "node",
"declaration": true,
"sourceMap": true,
"noImplicitAny": true,
"outDir": "./lib",
"rootDir": "./src"
function parallel(arr, callback) {
const promises = arr.map(func => {
return new Promise((resolve, reject) => {
const next = (err, data) => err ? reject(err) : resolve(data);
func(next);
});
});
Promise
.all(promises)
@noveogroup-amorgunov
noveogroup-amorgunov / app.d.ts
Last active July 24, 2023 05:41
Boilerplate type definition file for YOUR projects
declare global {
/**
* (1) Global TypeScript-helpers
*
* See built-in utility types to TypeScript
* @see https://www.typescriptlang.org/docs/handbook/utility-types.html
*/
/**
* Get union type with generic and null
@noveogroup-amorgunov
noveogroup-amorgunov / README.md
Last active March 16, 2024 07:32
(Материалы) MoscowJS 58 - Темная сторона NextJS

(Материалы) MoscowJS 58 - Темная сторона NextJS

Про темные стороны NextJS