質問は、私は同じキーを持つオブジェクトを持っていることをTypeSript伝える方法です
type MyHTMLFactory = DOMFactory<HTMLProps<HTMLElement> & SMTH>;
が、切り抜いた型を持つの)
interface IReactDom<T> {
a: T;
abbr: T;
address: T;
area: T;
article: T;
aside: T;
}
let myObj: IReactDom<HTMLFactory> = ...
myObj.a // HTMLFactory
注:Doc - generics
* EDITの*
私は拡張し、新しい要素を追加しますが、どのように私は基本要素の種類を変更することができますすることができますか?これを行うにはクリーン方法...しかし、あなたはこれを解決するために少しハックを作成することができます - 私はtypscriptについて知っているように
は、何公式はありません。
私たちの目標でもIBaseType
を拡張するだけでなく、カスタムタイプ、IGoalType
を定義することであるのは、
interface IBaseType {
a: string
b: string
c: string
n: number
m: number
}
例えばIBaseType
それを呼びましょう、あなたが変更することはできませんのはinterface
は、(この例で反応するから)があるとしましょうa
、b
& c
〜Object
などのタイプを変更します。これを行うには、私たちは今、「ブリッジ」
interace IBridge extends IBaseType {
a: any
b: any
c: any
}
interface IGoalType extends IBridge {
a: Object
b: Object
c: Object
}
として機能するインターフェイス(はい、これはクリーンなソリューションではありません)第三が必要になります、それをテスト:
let o: IGoalType
o.a // Object
o.a // Object
o.a // Object
o.n // number
o.m // number
をあなたが明確であることしていません –