inject
не указано значение по умолчанию - то inject
может вернуть как значение типа T
, так и undefined
, что можно явно увидеть в node_modules\@vue\runtime-core\dist\runtime-core.d.ts:export declare function inject<T>(key: InjectionKey<T> | string): T | undefined;
export declare function inject<T>(key: InjectionKey<T> | string, defaultValue: T, treatDefaultAsFactory?: false): T;
export declare function inject<T>(key: InjectionKey<T> | string, defaultValue: T | (() => T), treatDefaultAsFactory: true): T;
provide
(с ключем localizeFilterKey
). В случае вашего кода, т.к. inject
может вернуть undefined
, вам желательно сделать в коде проверку на undefined
(что в свою очередь, принудит TypeScript сделать сужение типа):...
const messagePlagin = inject(localizeFilterKey)
if (!messagePlagin) throw new Error('the plugin is not installed');
// TypeScript тут уже не будет считать, что messagePlagin может быть undefined, т.к. выше была явная проверка => соответственно произойдет сужение типа.
...
test.find(subItem => subItem.id === item.id)?.title
subItem => subItem.id === item.id
- это простая стрелочная функция, которая просто возвращает true или false, ибо выражение subItem.id === item.id
может быть только булевым (элементы равны - true, неравны - false). Метод .find() запускает эту функцию для каждого элемента массива до тех пор, пока не получит первое равенство. Если .find() не получил какого-либо равенства - возвращается undefined.?.
- это optional chaining operator. Т.к. .find() у нас может вернуть не только найденный объект, но и undefined (если ничего не найдено). И соответственно если .find ничего не нашел, а мы сразу напрямую обращаемся к свойству .title - то будет ошибка (Что-то типа "Uncaught TypeError: Cannot read properties of undefined (reading 'title')")...
plugins: [
new webpack.DefinePlugin({
INSERT_TAG_AS_STRING: (tagName) => `<${tagName}></${tagName}>`,
}),
],
...
.select__item a {
...
display: flex;
width: 100%;
height: 100%;
...
}
axios.get('...').then((data) => responseG = JSON.parse(JSON.stringify(data)))
является асинхронной и соответственно responseG будет пуст до тех пор, пока функция успешно не отработает.
addr-spec = local-part "@" domain
local-part = dot-atom / quoted-string / obs-local-part
А также рекомендую после настройки проверить отправку писем каким-нибудь сервисом наподобие mail-tester.com, ибо это может помочь выявить часть очевидных проблем.