Ta lekcja jest w bazie eduweb
Zaloguj się kontem z dostępem albo wykup dostęp do bazy, żeby obejrzeć wideo.
Lekcja 5/ 26Powtórka z ESNext
TypeScript dzięki wprowadzeniu statycznego typowania na zawsze zmienił oblicze JavaScriptu. W tym Kursie poznasz jego działanie, które wykorzystasz w swojej codziennej pracy. Co ważne, TypeScript oferuje również dostęp do funkcji, które jeszcze nie są częścią standardu ECMAScript. Przez istnienie tzw. nadzbioru języka JavaScript - kod pisany w JavaScript jest w 100% kompatybilny z TypeScriptem. W efekcie możesz zacząć używać go już teraz i stopniowo wdrażać w swoich projektach.
Zacznijmy od tego, że JavaScript jest dynamicznie typowany. Oznacza to, że typy zmiennych mogą się zmieniać w czasie wykonywania programu, a my nie mamy nad nimi kontroli. A po co nam ta kontrola? Między innymi po to, aby przypadkowo nie dodać typu number do string lub przekazać do funkcji nieprawidłowe danych. Ogromną zaletą jest to, że o tego typu błędach dowiadujemy się już na etapie pisania kodu a nie dopiero w trakcie jego wykonywania... na produkcji.
Prawdopodobnie znasz mechanizm intellisense, czyli inteligentnego podpowiadania kodu przez edytor. Pisząc kod w TypeScript, tworzysz definicje typów dotyczących Twojej aplikacji. W ten sposób dostęp do definicji klas i właściwości obiektów masz właściwie na wyciągnięcie myszki. Wystarczy "hover" na funkcji aby uzyskać szczegółowe informacje, które pomogą Ci w pisaniu kodu. Oprócz tego otrzymasz również automatyczne podpowiedzi w trakcie dostępu do właściwości i metod. Nic tylko pisać kod!
Nie musisz przepisywać całego projektu. TypeScript stanowi nadzbiór JavaScriptu. Zatem cały Twój projekt jest z nim w 100% kompatybilny, a Ty możesz stopniowo dodawać definicje typów. Nawet nie będziesz wiedział kiedy typy pojawią się w całej Twojej aplikacji. To daje Ci również możliwość uczenia się TypeScriptu w trakcie jego wdrażania. W tym kursie opanujesz podstawy a później... sam zobaczysz!
Ten kurs został stworzony z myślą o programistach, którzy podstawy JavaScriptu mają już za sobą i chcą poznać zalety statycznego typowania oferowanego przez TypeScript. Na początku Kursu zaczynamy również od krótkiej powtórki najważniejszych elementów samego JS.
Wersja oprogramowania: 3.8+
promise · 11 min
// Promise
const myPromise = function(a, b) {
return new Promise((res, rej) => {
const sum = a + b
setTimeout(res(sum), 500);
})
};
console.log(myPromise(1, 3));
myPromise(1, 2)
.then(result => `Promise finished with result: ${result}`) /*?*/
.catch(err => err); /*?*/
(async function() {
const result = await myPromise(3, 4);
console.log(result);
}());for of · 10 min
// for .. of
const items = ['a', 'b', 'c'];
for (let item in items) {
item;
}
for (let item of items) {
item;
}destructuring · 9 min
// Destructuring
const args = [1, 2, 3, 4];
const [a, b, c, d] = args;
console.log(a, b, c, d);
const coords = { x: 1, y: 10 };
const { x: horizontal, y } = coords;
horizontal; /*?*/
y; /*?*/
const response = { data: { value: 5 } };
function render({ data: { value } }) {
console.log(value);
}
render(response);rest i spread · 8 min
// Rest & spread
function manyParams(x, y, ...rest) {
console.log(x, y, rest);
}
// manyParams(1, 2, 3, 4, 5);
const args = [6, 7, 8, 9];
manyParams(args);
manyParams(...args);
const name = { name: 'eduweb' };
const website = { 'www': 'eduweb.pl' };
const profile = { ...name, ...website }; /*?*/
const arr1 = [1, 2, 3];
const arr2 = [...arr1, 4, 5, 6]; /*?*/let i const · 2 min
// let & const
var foo = true;
foo = 10; /*?*/
var foo = 5; /*?*/
if (foo) {
var foo = false; /*?*/
}
foo; /*?*/
let bar = true;
if (bar) {
let bar = false; /*?*/
}
bar; /*?*/
const baz = true;
baz = false; /*?*/constructor function · 6 min
// Constructor function
function Song(name) {
this.name = name;
this.play = function() {
return this.name; /*?*/
}
}
const bestSongEver = new Song('Iron man');
setTimeout(bestSongEver.play);arrow functions · 5 min
// Arrow functions
const move = x => `moved to ${x}`;
move(5); /*?*/
const moveClassic = function(x) {
return 'moved to ' + x;
}
moveClassic(5); /*?*/
const multiParams = (x, y) => `moved to ${x} then y`;
const withBody = (x) => {
return `moved to ${x} then y`
};
const returnObj = (x) => ({
message: `moved to ${x} then y`
});template strings · 4 min
// Template strings
const user = 'eduweb';
const message = `Hello ${user}!`; /*?*/
const longMessage = `
First line...
...and a second one 🤯
`;
function tagged(literals, ...placeholders) {
console.log(literals, placeholders);
}
tagged`tag call is ${'OK'}. Nice, hm?`;hoisting · 3 min
// Hoisting
a; /*?*/
var a = 5;
// b; /*?*/
let b = 5;
const obj = {};
obj.id = 10;
obj.id; /*?*/klasy · 7 min
// Classes
class Media {
constructor(type) {
this.type = type;
}
}
class Song extends Media {
constructor(name) {
super('song');
this.name = name;
}
play() {
return `Playing ${this.type}: ${this.name}`;
}
}
(new Song('Iron man')).play(); /*?*/
var Song = (function () {
function Song(name) {
this.name = name;
}
Song.prototype.play = function () {
return "Playing " + this.name;
};
return Song;
}());7 rozdziałów26 lekcji1h 54min
Dostęp do wszystkich kursów z bazy eduweb za 199 zł/mies.
Nazywam się Adam Gospodarczyk, jestem designerem i full-stack developerem. Przez całą swoją karierę zawodową pracuję w świecie startupów z branży edukacji, szkoleń pracowników oraz rekrutacji. Jestem współzałożycielem trzech produktów, które rozwijałem w roli CTO od samego początku. Przez ten czas zdobyłem szerokie doświadczenie znacznie wykraczające poza zakres samej technologii. W maju 2017 roku założyłem kanał na YouTube „overment” (https://overment.com) w ramach side-project’u po godzinach. Dziś jest to jeden z największych w Polsce tego typu projektów dla programistów za który otrzymałem nagrodę „JavaScript Hero of Community” podczas konferencji JS Poland 2019. Łącząc moje startup’owe doświadczenie z pasją do technologii, pomogę Ci nauczyć się programowania patrząc szerzej na perspektywę całego biznesu - jest to doceniana przez pracodawców umiejętność, którą wiele osób całkowicie pomija. Przy tym wszystkim pokażę Ci jak ważna jest regularna nauka i pozostawanie na bieżąco.