Kotlin / dukat

Converter of <any kind of declarations> to Kotlin external declarations
553 stars 44 forks source link

Extending Object leads to confusion #323

Closed Schahen closed 4 years ago

Schahen commented 4 years ago

Following code:

declare class Some extends Object {

}
import tsstdlib.Object

external open class Some : Object {
    override fun hasOwnProperty(v: String): Boolean
    override fun hasOwnProperty(v: Number): Boolean
    override fun hasOwnProperty(v: Any): Boolean
    override fun propertyIsEnumerable(v: String): Boolean
    override fun propertyIsEnumerable(v: Number): Boolean
    override fun propertyIsEnumerable(v: Any): Boolean
}

Which is wrong on many levels - we are not supposed to extend the typescript Object, we are explicitly to extend Object (Any in our case) at all .

Schahen commented 4 years ago

See also - https://youtrack.jetbrains.com/issue/KT-39998