typescript kotlin在打字稿中的风格代表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typescript kotlin在打字稿中的风格代表相关的知识,希望对你有一定的参考价值。
function delegateTo(prop: string) {
const { __proto__ } = this
Object.setPrototypeOf(this,
new Proxy({}, {
get: (target, name) => {
target = this[prop]
if (name === prop) return target
if (name in __proto__) return __proto__[name]
return target ? target[name] : undefined
}
})
)
}
export type Constructor<T=any> = new(...argv) => T
export function Decorator<T=any>(prop: string) {
return <any> function() {
delegateTo.call(this, prop)
} as Constructor<T>
}
function mixin<T>(...mixins: Array<Constructor>) {
const prototype = mixins.reduce(
(props, { prototype: __proto__ }) => {
let { prototype } = props
if (prototype) props = prototype
prototype = { __proto__ }
for (const key in props) prototype[key] = props[key]
return prototype
}
)
return <any>
Object.assign(
function(...argv) {
mixins.forEach(mixin => mixin.call(this, ...argv))
},
{ prototype }
) as Constructor<T>
}
export function delegate<To, From={}>(prop: string) {
return (Class: Constructor<From>) =>
<any> class extends mixin(Class, Decorator(prop)) {
} as Constructor<To & From>
}
class A {
a() { console.log('a') }
}
@delegateTo<A>('aInst')
class B implements { aInst: A } {
constructor(private aInst: A) {}
}
new B(new A).a()
以上是关于typescript kotlin在打字稿中的风格代表的主要内容,如果未能解决你的问题,请参考以下文章
typescript 打字稿中的导出示例
typescript 打字稿中的字符类
typescript 打字稿中的一些类
typescript 打字稿中的角度转换日期格式
打字稿中的多个构造函数
带有依赖注入和缩小的打字稿中的角服务