Информация об изменениях

Сообщение Re[10]: На чем сейчас пишут UI в enterprise приложениях? от 15.12.2014 17:53

Изменено 15.12.2014 17:54 andyag

Здравствуйте, Sharov, Вы писали:

S>>>Сразу такой вопрос, может знаете: а как работать с библиотеками типа jquery, angularjs, underscore и т.д?

S>>>Как обычно или же мне нужен порт этих библиотек на Kotlin?

A>>Там то же самое, что и в TypeScript.


S>Будьте добры развить мысль дальше, что в TypeScript? А то я не игрался еще.


Для одного JavaScript'овского нетипизированного function(a, b) нужно написать несколько типизированных перегрузок, которые опишут какие сочетания типов возможны для a и b, и какой получится результат. Например, если взять $('h1').addClass(???), то в документации jQuery описаны 2 варианта что можно передать в качестве аргумента: строка или функция (http://api.jquery.com/addClass/). Kotlin позволяет вместо документации просто взять и один раз описать в коде обе перегрузки:
package jquery

import org.w3c.dom.Element

native
public public class JQuery() {
    public fun addClass(className: String): JQuery = noImpl;
    public fun addClass(f: Element.(Int, String) -> String): JQuery = noImpl;
...

(https://github.com/JetBrains/kotlin/blob/master/js/js.libraries/src/jquery/common.kt)

Т.е. реализация jQuery берётся оригинальная, но есть возможность описать для неё статически типизированный интерфейс, которые запретит писать глупости типа $('h1').addClass(123)
Здравствуйте, Sharov, Вы писали:

S>>>Сразу такой вопрос, может знаете: а как работать с библиотеками типа jquery, angularjs, underscore и т.д?

S>>>Как обычно или же мне нужен порт этих библиотек на Kotlin?

A>>Там то же самое, что и в TypeScript.


S>Будьте добры развить мысль дальше, что в TypeScript? А то я не игрался еще.


Для одного JavaScript'овского нетипизированного function(a, b) нужно написать несколько типизированных перегрузок, которые опишут какие сочетания типов возможны для a и b, и какой получится результат. Например, если взять $('h1').addClass(???), то в документации jQuery описаны 2 варианта что можно передать в качестве аргумента: строка или функция (http://api.jquery.com/addClass/). Kotlin позволяет вместо документации просто взять и один раз описать в коде обе перегрузки:
package jquery

import org.w3c.dom.Element

native
public public class JQuery() {
    public fun addClass(className: String): JQuery = noImpl;
    public fun addClass(f: Element.(Int, String) -> String): JQuery = noImpl;
...

(https://github.com/JetBrains/kotlin/blob/master/js/js.libraries/src/jquery/common.kt)

Т.е. реализация jQuery берётся оригинальная, но есть возможность описать для неё статически типизированный интерфейс, который запретит писать глупости типа $('h1').addClass(123)