te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>Kotlin JavaScript to TypeScript Definition File - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Kotlin JavaScript to TypeScript Definition File - Stack Overflow

programmeradmin3浏览0评论

I have found the ts2kt library which will create Kotlin header files from arbitrary .d.ts files. But, I want to go in the opposite direction.

I want to build a Kotlin library that will pile to JavaScript, but I want to use it from TypeScript. Is there a way to make Kotlin generate a .d.ts file(s) from its exposed interfaces? Am I approaching this the right way?

I have found the ts2kt library which will create Kotlin header files from arbitrary .d.ts files. But, I want to go in the opposite direction.

I want to build a Kotlin library that will pile to JavaScript, but I want to use it from TypeScript. Is there a way to make Kotlin generate a .d.ts file(s) from its exposed interfaces? Am I approaching this the right way?

Share Improve this question edited Feb 10, 2018 at 5:47 Rohit Sharma 2,6996 gold badges22 silver badges40 bronze badges asked Mar 1, 2017 at 17:00 Jon OJon O 6,5911 gold badge48 silver badges58 bronze badges 3
  • 2 kotlin does not map 1-to-1 to javascript as typescript does so even if such tool existed, kotlin types would not represent the generated javascript all the time – Adel Nizamuddin Commented Mar 1, 2017 at 17:56
  • AFAIK such tool is not exist (yet) – bashor Commented Mar 1, 2017 at 20:09
  • 5 related issue: youtrack.jetbrains./issue/KT-16604 – bashor Commented Mar 6, 2017 at 19:09
Add a ment  | 

2 Answers 2

Reset to default 2

In Kotlin 1.4-M1 support for exporting TypeScript definitions was added

Preview: TypeScript definitions

Another feature in the new Kotlin/JS IR piler we’re excited to show off is the generation of TypeScript definitions from Kotlin code. These definitions can be used by JavaScript tools and IDEs when working on hybrid apps to provide autopletion, support static analyzers, and make it easier to include Kotlin code in JS and TS projects.

For top-level declarations marked with @JsExport (see above) in a project configured to use produceExecutable(), a .d.ts file with the TypeScript definitions will be generated. For the snippet above, they look like this:

// [...]
namespace blogpost {
    class KotlinGreeter {
        constructor(who: string)
        greet(): string
    }
    function farewell(who: string): string
}
// [...]

In Kotlin 1.4-M1, these declarations can be found in build/js/packages/<package_name>/kotlin alongside the corresponding, un-webpacked JavaScript code. Please note that since this is only a preview, they are not added to the distributions folder by default for now. You can expect this behavior to change in the future.

I'm looking to do something like this to share models between Android and JS. There is the ts-generator library, which takes jvm classes and generates ts definitions from them.

I haven't tried this yet, but it theoretically should work. Separate the API for your library (or an interface the api implements) into a kotlin mon module. You can then pile the api into a jvm module, and run it through the ts-generator to generate ts definitions.

Maybe there is a clever way to do this to skip the pilation to jvm for ts definition generation.

发布评论

评论列表(0)

  1. 暂无评论