Typescript - потрясающий и мощный язык, и мне было интересно, может ли он помочь мне каким-то умным образом.
У меня есть функция:
function update(cfgName: string, cfgPath: string, cfgValue: any)
где будет выглядеть ее вызов что-то вроде этого:
update('appCfg', '/opt1/#id/opt2', this.storage.appCfg.opt1['id'].opt2)
первый аргумент всегда является именем свойства, которое идет после this.storage
, а второй аргумент всегда является путем после этого, с условием, что #
обозначает массив / поиск по словарю. Это будет отправлено на сервер как AJAX.
Я подумал, есть ли что-нибудь умное, что я могу сделать, чтобы получить первый и второй аргументы вместо того, чтобы каждый раз записывать их. Я знаю, что мог бы go иначе и иметь только первый и второй аргумент, а затем получить последний с помощью eval
, но я теряю проверки времени компиляции с этим
с текущей реализацией, если Мне когда-либо приходилось переименовывать свойство - мне нужно go через код и исправить все значения в аргументе1 и аргументе2. Это очень agile и опасно.
Если бы это было C#, я бы использовал Expression<Func<T>>
и проанализировал бы его, чтобы получить необходимые значения. Могу ли я чем-нибудь помочь мне в typescript
?