value
уже существует, а остальной мусор пофиг, т.к. в ts структурная типизация, т.е. под сигнатуру interface Props {
readonly value: string;
}
подходит любой объект у которого есть value: string
:const foo = {
value: 'string',
id: 'string'
}
const bar: Props = foo; // ok
const bar: Props = {
value: 'string',
id: 'string' // err
};
Но это специальный случай - предполагается, что задавая литерал вы хотите задать именно объект указанного типа и никакой другого. Однако к парадигме структурной типизации используемой в ts это отношения не имеет, чисто quality of life фича.interface Props {
readonly value: string;
}
interface Props2 {
readonly value: string;
readonly id?: number;
}
const foo = {
value: 'string',
id: 'string'
}
const bar: Props = foo;
const buz: Props2 = bar;
buz.id?.toFixed(2) // ts ok, runtime error :(
server {
listen 80;
server_name localhost;
location / {
root /var/www/html;
index index.php;
}
location /metrics {
stub_status;
allow 127.0.0.1;
deny all;
}
location ~ \.php$ {
root /var/www/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
include fastcgi_params;
}
}
let runWithRetry = async (func, tries = 5) => {
let attempt = 1;
while (attempt <= tries) {
try {
return await func();
} catch (error) {
console.log(`Attempt #${attempt} failed: ${error}`);
attempt++;
}
}
throw new Error(`Failed after ${tries} tries`);
};
try {
let busyWork = () => new Promise((resolve, reject) => {
setTimeout(() => (Math.random() > 0.75 ? resolve(Math.random()) : reject()), 1000);
});
let result = await runWithRetry(busyWork, 5);
console.log(result);
} catch (error) {
console.error(error);
}
Парковка элементов относительно друг друга через точки
Point: 1|2|3|4
topLeft topRight
1___2
| |
|___|
4 3
bottomLeft bottomRight
Edges 1
_____
| |
4 | | 2
|_____|
3
Point format:
[targetPoint, itemPoint]
Docking variants:
[1,3] [2,4]
__ __
item -> |_3|______|4_|
target -> |1 2|
__|4____3|__
|_2| |1_|
[4,2] [3,1]
__
|4_|___ __
__|1 2|1_|
|_3|4____3|
|_2|
__
__ ___|_3|
|_2|1 2|__
|4____3|4_|
|1_|
1_________2
|1_| |_2|
|__ __|
|4_|___|_3|
4 3
python -m venv venv
python -V
sudo rm /usr/lib/python3.11/EXTERNALLY-MANAGED
function watcher() {
gulp.watch('./src/style.css', { delay: 500 }, styles);
}
// в данном случае будет задержка в полсекунды после сохранения файла.