Haxeのexternとinlineを同時に書くとinlineが優先されるっぽい
HaxeのjQuery externで new JQuery("selector"); って書くのがダサいなぁと思って、いろいろ試していたときにコンパイルできたコードをメモ。externとinlineを同時に書くとinlineの方が優先されるらしい。
Haxe 3.1.3で確認。
@:native("jQuery") extern class JQuery { public static inline function create(selector: String, ?context: Dynamic): JQuery { return untyped __js__("jQuery")(selector, context); } }
var elem = JQuery.create("body"); var tag = JQuery.create("<div/>");
その他のポイントとしては、untyped __js__("jQuery")で、Functionを取得して、それをコールしていること。
で、ここまでやってみたいのだけど、そもそも「jQueryの $() が色々できてしまうこと」自体がHaxeの文化にマッチしていないので、$.find() とか $.parseHTML() を使った方がいいよねという考えに至ったので、不採用とした。