Преобразовать выражение в строку - PullRequest
0 голосов
/ 17 июня 2020

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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...