Iはこのシグネチャには何が問題なのですか? (typescriptです-2.5)
export class NodeJsTestingFrameworkAdapter implements ITypeAssertions
{
isOfTypeElseFail<TExpected extends TActual, TActual>(value: TActual, oxIsOfType: (xVal: TActual) => boolean): value is TExpected
{
throw new Error("Method not implemented.");
}
}
コンパイラはその文句インターフェース
export interface ITypeAssertions
{
isOfTypeElseFail<TExpected extends TActual, TActual>(value: TActual, oxIsOfType: (xVal: TActual) => boolean): value is TExpected;
}
及び実装を有する:
インターフェース-適切に実装されていない
(...)
- タイプ述語 'の値が触覚では、' 割り当て可能ではないの 'の値が TExpectedされる'
- タイプ '触覚' は 'TExpected'を型に代入ではありません
- タイプ述語 'の値が触覚では、' 割り当て可能ではないの 'の値が TExpectedされる'
何が問題なのですか?これは型チェッカーのバグですか?
PS。それはTs-2.3の下でコンパイルされました。ジェネリックとして
戻り値が型ガードであることを本当に推測していますが、それを返すように変更すると、それは私のために機能します –
@ TitianCernicova-Dragomirしかし、戻り値を 'value'から' bool'に変更するとOPが望むような一般的なタイプのガードではありませんか? – Pac0
バージョン2.4では、より一般的な型の推論が導入されました。残念ながら、なぜこれが起こっているのか正確に理解することは難しいです。見知らぬ人でも、ユーザー定義の型警備員なしで機能するという事実です。公式のTypeScriptリポジトリに問題を提出することをお勧めします。 –