TS作为JS的超集,增加了面向对象的概念,但是在大部分教程都没有说清楚怎么在TS实现面向对象的各种形式,内部类、接口实现多态等。这里介绍类的多种实现方式,接口实现,内部类实现接口、静态内部类。
interface AdapterScanListener {
onScan(adapter: String)
}
class ExternalClass {
test() {
//匿名内部类使用
this.hello.hello()
//内部类使用
let inner = new this.InnerClass()
inner.hi()
//静态内部类使用
let staticInner = new ExternalClass.StaticInnerClass()
staticInner.hi()
//内部类实现interface
let impl = new this.AdapterScanListenerInnerImpl()
impl.onScan('AdapterScanListenerInnerImpl')
}
/**
* 匿名内部类实现
*/
hello = {
hello() {
console.log('hello')
}
}
/**
* 内部类
*/
InnerClass = class InnerClass {
hi() {
console.log('hi inner class')
}
}
/**
* 静态内部类
*/
static StaticInnerClass = class InnerClass {
hi() {
console.log('hi static inner class')
}
}
/**
* 内部类实现interface
*/
AdapterScanListenerInnerImpl = class Impl implements AdapterScanListener {
onScan(adapter: String) {
console.log(`onScan:${adapter}`)
}
}
}
let classTest = new ExternalClass()
classTest.test()