Size: a a a

TypeScript — русскоговорящее сообщество

2020 April 06

A

Alex CherryTea in TypeScript — русскоговорящее сообщество
Maxim Antsiferov
Подскажите как написать типы для этой функции, никак не получается
export function route(path: string, children: any = {}) {
const fn = function() {
 return path
};
fn.toString = () => path;

fn.children = children;

for (let key in children) {
 const item = children[key];
 if (typeof item === 'string') {
  fn[key] = route(path + item);
 } else {
  fn[key] = route(path + item(), item.children);
 }
}

return fn
}

const routes = {
root: route('/'),
home: route('/home', {
 user: route('/user', {
  notifications: '/notifications',
  settings: '/settings',
 }),
 dashboard: route('/dashboard'),
}),
};

console.log(routes.home.user.settings());
переписать этот говнокод
источник

NN

Nikita Nafranets ⎈ in TypeScript — русскоговорящее сообщество
че за фигня, почему он считает что key undefined?
источник

NN

Nikita Nafranets ⎈ in TypeScript — русскоговорящее сообщество
и если добавить даже if (acc !== undefined) то все равно считает undefined
источник

НШ

Никита Штейников in TypeScript — русскоговорящее сообщество
@eddimensi потому что ты передаешь строку а не ключь
источник

НШ

Никита Штейников in TypeScript — русскоговорящее сообщество
так как тс считает что там должен быть ключ сделай keyof от интерфейса вместо строки
источник

НШ

Никита Штейников in TypeScript — русскоговорящее сообщество
и будет авто подставление и корректная работа
источник

NN

Nikita Nafranets ⎈ in TypeScript — русскоговорящее сообщество
ну мне не совсем нужен keyof
источник

НШ

Никита Штейников in TypeScript — русскоговорящее сообщество
у тебя рандомная проперти?
источник

NN

Nikita Nafranets ⎈ in TypeScript — русскоговорящее сообщество
key of от какого интерфейса сделать надо?
источник

NN

Nikita Nafranets ⎈ in TypeScript — русскоговорящее сообщество
просто мне надо background, bgSize, bgPos, bgColor в bgImg, bgSize, bgPos, bgColor
источник

НШ

Никита Штейников in TypeScript — русскоговорящее сообщество
какой у тебя интерфейс в records ?
источник

NN

Nikita Nafranets ⎈ in TypeScript — русскоговорящее сообщество
короче если так написать
источник

A

Alex CherryTea in TypeScript — русскоговорящее сообщество
у тса с динамическими ключами все плохо, попробуй через переменную
источник

НШ

Никита Штейников in TypeScript — русскоговорящее сообщество
интересно где определился тип undefined | string
источник

VK

Vladimir Kurchatkin in TypeScript — русскоговорящее сообщество
Немного офтоп, но редьюс здеь не делает ничего, замени на forEach или цикл
источник

NN

Nikita Nafranets ⎈ in TypeScript — русскоговорящее сообщество
Vladimir Kurchatkin
Немного офтоп, но редьюс здеь не делает ничего, замени на forEach или цикл
в смысле ничего? он собирает новый объект
источник

NN

Nikita Nafranets ⎈ in TypeScript — русскоговорящее сообщество
Alex CherryTea
у тса с динамическими ключами все плохо, попробуй через переменную
а это как? O_o
источник

VK

Vladimir Kurchatkin in TypeScript — русскоговорящее сообщество
Nikita Nafranets ⎈
в смысле ничего? он собирает новый объект
Ты каждый раз вовзращаешь один и тот же объект. Это значит, что редьюс ничего не делает, просто цикл
источник

NN

Nikita Nafranets ⎈ in TypeScript — русскоговорящее сообщество
я заполняю объект данными и мутирую один из ключей.
источник

A

Alex CherryTea in TypeScript — русскоговорящее сообщество
Nikita Nafranets ⎈
а это как? O_o
const k: string = key;
acc[k] = ..
источник