このコードでは、v1
の型はBehaviorSubject<string | number>
であり、種類はv2
であり、{}
です。TypeScript型の結果の型パラメータの型に基づく
この種類のv1
はBehaviorSubject<string>
となり、タイプはv2
となります。{ a: number, b: number }
となります。
TypeScriptタイプのシステムでこれが可能ですか?
interface Test
{
prop: {
(x: string | number): BehaviorSubject<typeof x>;
(x: {}): typeof x;
}
}
let test: Test;
let v1 = test.prop('');
let v2 = test.prop({ a: 1, b: 2 });
keyofまたはマップされたタイプの機能を使用していても、最新のTypeScript 2.1である可能性があります。
これは、公開に関する新しい質問として投稿することができます – Paarth