const [a, b, c, d, f, g= ''] = value.match(/\d+/g)!;
const [a, b, c, d, f, g= ''] = value.match(/\d+/g) || [];
<linearGradient gradientUnits="userSpaceOnUse" ...>
<svg class="inline-svg-icon" fill="url(#red-blue)"><use...>
по сути каждый элемент просто наследует этот атрибут fill. И по умолчанию градиент рисуется в границах элемента. Если же указать userSpaceOnUse, то градиент будет рисоваться в пределах текущего viewport.interface ModelOptionRange {
value: [ number, number ];
range: true;
}
interface ModelOptionValue {
value: number;
range: false;
}
type ModelOption = ModelOptionRange | ModelOptionValue;
function check(v: number, cond: ModelOption): boolean {
if (cond.range) {
// тут cond точно типа ModelOptionRange
const [ min, max ] = cond.value;
return (min <= v && v <= max);
} else {
// а тут ModelOptionValue
return v === cond.value;
}
}
server {
listen 80;
server_name *.example.com;
return 301 https://$host$request_uri;
}
FROM ubuntu
ENV TZ=Europe/Moscow
RUN apt-get update && apt-get install -yy tzdata
RUN cp /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
$ docker build .
Sending build context to Docker daemon 2.048kB
Step 1/4 : FROM ubuntu
---> d70eaf7277ea
Step 2/4 : ENV TZ=Europe/Moscow
---> Using cache
---> 24c7e693dacf
Step 3/4 : RUN apt-get update && apt-get install -yy tzdata
---> Using cache
---> 8d1bbd58900b
Step 4/4 : RUN cp /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
---> Using cache
---> b65965107725
Successfully built b65965107725
$ docker run b65965107725 date
Thu Oct 29 21:09:13 MSK 2020
$ date
Thu Oct 29 21:09:15 MSK 2020
WOFF Version 1 uses the widely available zlib compression
WOFF 2.0, [...], using Brotli for byte-level compression
[1, 2, 3].map((x, index) => ({x, y: index * 10 }));
// [ { x: 1, y: 0 }, { x: 2, y: 10 }, { x: 3, y: 20 } ]
// Эта функция определена где-то в другом месте (для примера вместо AsyncStorage)
declare function someMagic(key: string): string | null;
type StoreTypes = {
theme: 'light' | 'dark' | null;
auth: 'true' | 'false' | null;
}
// Собственно декларация функции
function getKey<K extends keyof StoreTypes>(key: K): StoreTypes[K] {
return someMagic(key) as StoreTypes[K];
}
// type t = "light" | "dark" | null
const t = getKey('theme');
// type a = "true" | "false" | null
const a = getKey('auth');
// ошибка "test" не является ключом в StoreTypes
const x = getKey('test');