2017-06-20 9 views
0

クラスを拡張するときに型が流れないことに気づいていますが、型定義でそれを強制する方法があるのだろうか?ここではいくつかの擬似コードです:私はこのような何かを期待していますTypescriptで親クラスのメソッド型を使用する

class A { 
    render(props: Object) { 

    } 
} 

class B extends A { 
    render(props) { <- right now its an any type, I'd like it to inherit from A 

    } 
} 

class A { 
    render(props: Object) { 

    } 
} 

class B extends A { 
    render(props: this.props) { 

    } 
} 

乾杯!

+0

がhttps://stackoverflow.com/questions/44596117/automatically-inferring-types-fromも参照-overridden-interfaces-in-typescript – artem

答えて

2

再度、そのメソッドのタイプを再定義する必要があります。しかし、基本クラスよりも緩いものを定義すると、エラーが発生します。

これは動作します:

class A { 
    render(props: string) { 

    } 
} 

class B extends A { 
    render(props: string) { 

    } 
} 

これはしません:

class A { 
    render(props: string) { 

    } 
} 

class B extends A { 
    render(props: number) { 

    } 
} 
+0

素晴らしい、ありがとう! – Matt

+0

この回答があなたが探していたものであれば、それも正しいものとしてマークしてください。他の人にも分かります。 :) – toskv

関連する問題