#TypeScript 的 overloads list 有点不直接,而且是半自动的多态…… 定义侧还得手动
typeof
#TypeScript TS 也有『半dependent type』的特性——输出类型可按照实际参数而定。
interface Monkey {
Hou: HappyMonkey;
Jun: SadMonkey;
}
function getMonkey<K extends keyof Monkey>(name: K): Monkey[K] {/**/}
https://github.com/dhakehurst/net.akehurst.kotlin.kt2ts #Kotlin #TypeScript #dev #tools 🤔 第一次知道可以这么干
看来 ParserKt 的 Kotlin/JS document 要靠这个人的实践经验了
看来 ParserKt 的 Kotlin/JS document 要靠这个人的实践经验了
GitHub
GitHub - dhakehurst/net.akehurst.kotlin.kt2ts: Typescript definition file generator for kotlin (js) classes
Typescript definition file generator for kotlin (js) classes - dhakehurst/net.akehurst.kotlin.kt2ts
索引 slice (视口计算) 起来还挺麻烦的,开始用脑子都搞错了,亏了我的工程/调试经验…… 勉强试出来了 😥
老实说我对这个内带优化元素的特性本身认知都不明确,不过终于是写出来了
改日,这个项目会被重写打包成支持 ES5 的 Web Extension ,感谢 #TypeScript .
老实说我对这个内带优化元素的特性本身认知都不明确,不过终于是写出来了
改日,这个项目会被重写打包成支持 ES5 的 Web Extension ,感谢 #TypeScript .
duangsuse::Echo
#Kotlin #code #coroutine suspend fun main() = coroutineScope { for (i in 0 until 10) launch { delay(1000L - i*10); print("$i ") } } 提问:为什么结果是 9 downTo 0 ?launch 的里面用了 coroutine 特性,但为什么 main 也是 suspend fun? 如果只是单线程,是怎么在最后才输出第一次的 $i 的?
#Kotlin #coroutine 应该说有了可以挂起恢复的协程后, launch 里面的东西就可以理解为「被添加的Task」吧(此例只是闭包住了变量
第一个 async fun
这个 launch 本身就是独立于 for (i in iprog) 顺序的,不是说得 i=9 的 launch 完了才能发 i=8 的,而 suspend fun() {} 的独立性可以理解为 #TypeScript 式的 async state machine 基本就是单独的闭包了,调度分次不会互相冲突。(或者根本是独立的程序流?)
i
),由线程(池)上执行的调度器来运行它们,类似于 event loop 这样第一个 async fun
delay
本身也是调度器操作,不是 Thread.sleep
不会休眠线程,是完全不同的概念,当然不会卡死调度器,举个例子:var t0 = time(); var t1:Long
for (task in cyclic(tasks)) {
t1 = time()
if (task.delay>=0) task.delay -= (t1-t0)
else { task.run() }
t0 = t1
}
这个 launch 本身就是独立于 for (i in iprog) 顺序的,不是说得 i=9 的 launch 完了才能发 i=8 的,而 suspend fun() {} 的独立性可以理解为 #TypeScript 式的 async state machine 基本就是单独的闭包了,调度分次不会互相冲突。(或者根本是独立的程序流?)