В NemerleWeb мы умеем генерировать классы из описания типизации JavaScript на базе TypeScript-а.
Однако у TypeSript-а структурная типизация , что позволяет писать такой код:
interface A {
F() : { x : any; y : string; };
F(a : any) : { x : number; };
G(val : { x : any; y? : string; }) : void; // y? - означает что в типе не обязан быть 'y'
}
...
var a = GetA();
a.G(a.F());
a.G(a.F(1));
Неясно как лучше это перевести на Nemerle.
Есть несколько вариантов , но в итоге все сводится к тому, что нужна структурная типизация в CLR
_NN>Самое то главное, я хочу во время компиляции проверять типы, а не падать во время работы.
Я вариантов кроме рефлексии и генерации кучи перегрузок по использованию не вижу.
Здравствуйте, STDray, Вы писали:
_NN>>Самое то главное, я хочу во время компиляции проверять типы, а не падать во время работы. STD>Я вариантов кроме рефлексии и генерации кучи перегрузок по использованию не вижу.
Есть вариант решения на базе макросов типа :
def x = a.F();
a.G(structural_cast x);
И тут макрос проверит типы и если можно, то создаст объект нового типа с копированием значений.
Хотя я тут подумал, ведь в самом коде JS преобразований то не будет, тем более наверное такого макроса достаточно.
Код все равно будет в JS без преобразований.
Похоже это и есть решение =)
Здравствуйте, _NN_, Вы писали:
_NN>Здравствуйте, Аноним, Вы писали:
А>>Здравствуйте, _NN_, Вы писали:
А>>я думал забили вы на это уже давно
_NN>Забили на что ?
На NemerleWeb. До сих пор нет компонентной части (кнопочки, едиторы и прочий хлам без нтмл). Нет возможности скомпилировать в файл и применять на десктопе (замена винформам). И т д.
Здравствуйте, Аноним, Вы писали:
А>На NemerleWeb. До сих пор нет компонентной части (кнопочки, едиторы и прочий хлам без нтмл). Нет возможности скомпилировать в файл и применять на десктопе (замена винформам). И т д.
Делаем по мере возможного времени.
NemerleWeb нигде не позиционировался как замена винформам .
Если хотите получить выхлоп JS через NemerleWeb это не проблема, а что дальше то делать будете ?
А>Но вообщем порадовали, что не забросили проект.
Вы присоединяйтесь , это действительно порадует
Здравствуйте, _NN_, Вы писали:
_NN>Здравствуйте, Аноним, Вы писали:
А>>На NemerleWeb. До сих пор нет компонентной части (кнопочки, едиторы и прочий хлам без нтмл). Нет возможности скомпилировать в файл и применять на десктопе (замена винформам). И т д. _NN>Делаем по мере возможного времени. _NN>NemerleWeb нигде не позиционировался как замена винформам .
_NN>Если хотите получить выхлоп JS через NemerleWeb это не проблема, а что дальше то делать будете ?
А>>Но вообщем порадовали, что не забросили проект. _NN>Вы присоединяйтесь , это действительно порадует
Здравствуйте, Аноним, Вы писали:
А>Говори что надо делать. А>Я попробую.
А что хотите делать ? Работы то немало
Во первых есть баги которые нужно когда-то починить.
Потом в планах улучшение сайта с добавлением примеров и хорошим объяснением как пользоваться фреймворком.
Далее еесть еще Дерево для rsdn.ru созданнео на NemerleWeb