【发布时间】:2020-04-16 17:00:35
【问题描述】:
我熟悉 Kotlin 扩展函数let(及相关)(参见https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/let.html)。
我想在 TypeScript 中使用类似的东西,使用扩充(或者称为声明合并?)。所以我想我可以将let 方法添加到Object 超类中。
我该怎么做?我想到了以下类似的方法,但没有奏效。 Typescript 似乎没有增强,而是单独使用以下界面。
interface Object {
let<T, R>(block: (t: T) => R): R
}
(Object.prototype as any).let = function<T, R>(block: (t: T) => R) {
return block(this)
}
编辑:
测试用例是:
'42'.let(it => alert(it))
'foo'.let(it => it.toUpperCase())
(即let 可用于任何对象,在本例中为字符串)
【问题讨论】:
标签: typescript module-augmentation