私はブールまたはブール値を返す関数のいずれかになります「のisVisible」プロパティが存在しているクラスがあります。エラーTS2349組合タイピング(ブールと機能)を使用して
次のコードは、私は現在正常に動作され、使用して、そして私が欲しいものを行いますが、コンパイルにerror TS2349: Cannot invoke an expression whose type lacks a call signature.
を得続けるのですかを示しています。
export class Foo {
isVisible: boolean | ((bar?: any) => boolean);
constructor(isVisible: boolean | ((bar?: any) => boolean) = true) {
this.isVisible= isVisible;
}
}
アイデアは私がFoo
のインスタンスを評価していたとき、私は一つ一つが表示されているかどうかを判断するには、以下のかということである。
public isVisible(item: Foo) {
if (typeof item.isVisible === 'boolean') {
return item.isVisible;
}
return item.isVisible(this.thing);
}
編集:
コンパイルエラーメッセージが最後を参照上のコードブロックの行(つまり、return item.isVisible(this.thing);
)。
エラーは、ビルドタスクを実行すると、gulp typescriptプラグインから生成されます。
編集2:
それは私が実際にはまだ活字体1.8を使用していますので、これはかもしれ判明 - 私は2.xと定着剤が発行するかどうかを確認するためにアップグレードしてみます。あなたのメソッドのシグネチャの終わりに:boolean
を追加
エラーはどこですか?私はそれを再生できません –