TGViewer
Channel Public Channel
JavaScript

JavaScript

@javascript

A resourceful newsletter featuring the latest and most important news, articles, books and updates in the world of #javascript πŸš€ Don't miss our Quizzes!

Let's chat: @nairihar
Subscribers
31K
Photos
1.2K
Videos
10
Links
899

Showing posts older than #2234 Β· Back to latest

Older Posts 20 shown
Post #2233 4.67K
  • ❀ 4
  • πŸ‘ 2
  • πŸ”₯ 2
  • 🀩 1
Post #2232 5.09K
CHALLENGE

type User = {
id: number;
name: string;
email?: string;
};

function processUser<T extends User>(user: T): T & { processed: boolean } {
return { ...user, processed: true };
}

const partialUser = { id: 1, name: 'Alice' };
const result = processUser(partialUser);

console.log(typeof result.email);
  • πŸ‘ 8
  • πŸ”₯ 3
  • ❀ 1
Post #2231 5.13K
🀩 Comparing Tauri and Electron for Building Desktop Apps

Electron is a natural choice for building JS and HTML-powered cross-platform desktop apps but numerous alternatives have appeared like Neutralinojs and the Rust-based Tauri. This post does a good job of quickly showing how Tauri differs and why you might choose it.

Costa Alexoglou
  • πŸ‘ 4
  • ❀ 2
  • πŸ”₯ 2
Post #2229 4.68K
  • ❀ 5
  • πŸ‘ 4
  • πŸ€” 4
  • πŸ”₯ 1
Post #2228 4.99K
CHALLENGE

function processUserData(data) {
const settings = {
theme: data.preferences?.theme ?? 'light',
notifications: data.preferences?.notifications ?? true,
fontSize: data.preferences?.fontSize ?? 16
};

let status = data.status ?? 'active';
let reputation = data.reputation ?? 0;

console.log(reputation || 'No reputation yet');
return settings;
}

processUserData({ status: '', reputation: 0 });
  • ❀ 3
  • πŸ‘ 3
  • πŸ€” 1
Post #2226 4.85K
  • ❀ 4
  • πŸ‘ 4
  • πŸ€” 3
Post #2225 4.74K
CHALLENGE

function processConfig(config) {
const defaultPort = 8080;
const defaultTimeout = 5000;

const port = config?.port ?? defaultPort;
const timeout = config?.timeout ?? defaultTimeout;
const debug = config?.debug ?? false;

return {
summary: `Port: ${port}, Timeout: ${timeout}, Debug: ${debug ? 'enabled' : 'disabled'}`,
isUsingDefaults: port === defaultPort && timeout === defaultTimeout
};
}

const result = processConfig({ port: 0, timeout: null });
console.log(result.summary);
  • πŸ€” 4
  • πŸ‘ 3
  • ❀ 2
  • πŸ”₯ 1
Post #2224 4.88K
  • πŸ‘ 8
  • πŸ€” 8
  • 🀣 2
Post #2223 5.11K
CHALLENGE

// What will be logged when this code runs?
const counter = (() => {
let count = 0;

return {
increment() {
count += 1;
return this;
},
reset() {
count = 0;
return this;
},
get value() {
return count;
}
};
})();

const { increment, value } = counter;

increment();
counter.increment();

console.log(value);
  • 🀣 11
  • πŸ‘ 7
  • ❀ 6
  • πŸ€” 3
Post #2221 5.49K
  • πŸ€” 12
Post #2220 5.22K
CHALLENGE

function createCounter() {
let count = 0;

return function() {
count++;
return count;
};
}

const counter1 = createCounter();
const counter2 = createCounter();

counter1();
counter1();
counter2();

const result = counter1() + counter2();
console.log(result);
  • πŸ‘ 9
  • πŸ€” 8
  • ❀ 5
Post #2219 5.59K
🀟 Node.js Testing Best Practices

A detailed guide to modern testing in Node from a group of developers who know all about it. It’s on GitHub but is essentially written like a free book covering over 50 battle-tested tips covering areas as diverse as the β€˜Testing Diamond’, testing microservices, checking contracts, verifying OpenAPI correctness, and simulating flaky network conditions.

Goldberg, Salomon, and Gluskin
  • πŸ‘ 9
  • πŸ”₯ 3
  • ❀ 2
Post #2218 5.27K
  • πŸ‘ 8
  • ❀ 5
  • πŸ”₯ 2
  • 🀣 2
  • πŸ€” 1
Post #2217 5.21K
CHALLENGE

const obj = {
[Symbol('a')]: 'hidden',
[Symbol.for('b')]: 'registered',
c: 'normal'
};

const symbols = Object.getOwnPropertySymbols(obj);
const keys = Object.keys(obj);
const allProps = Reflect.ownKeys(obj);

console.log(symbols.length, keys.length, allProps.length);
  • πŸ‘ 3
  • ❀ 2
Post #2216 5.66K
  • ❀ 7
  • πŸ€” 6
  • πŸ‘ 2
Post #2215 5.52K
CHALLENGE

const p1 = Promise.resolve(1);
const p2 = new Promise(resolve => resolve(2));
const p3 = new Promise(resolve => setTimeout(() => resolve(3), 0));
const p4 = Promise.reject(4).catch(err => err);

Promise.all([p1, p2, p3, p4])
.then(values => {
const result = values.reduce((acc, val) => {
return acc + val;
}, 0);
console.log(result);
})
.catch(err => console.log('Error:', err));
  • ❀ 5
  • πŸ‘ 1
Post #2214 5.18K
🀨 Anime.js 4.0: A JS Animation Library for the Web

If you’re tired of Web animations, maybe Anime.js will refresh your appetite. This is a major upgrade to a mature library for animating CSS properties, SVGs, the DOM, and JS objects. It’s smooth, well-built, and now complete with fresh documentation.

Julian Garner
  • ❀ 6
  • πŸ‘ 5
  • πŸ”₯ 4
Post #2213 5.23K
  • πŸ‘ 10
Older posts β†’
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook β†’Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 β†’