のために私はタイプArray
の特性にのみ使用可能です活字体でプロパティデコレータを持っています。プロパティの型がArray
ない場合はこれを強制するために、TypeError
は(プロパティの型情報を取得するためにreflect metadataを使用して)実行時にスローされます。プロパティデコレータは、特定のプロパティタイプ
function ArrayLog(target: any, propertyKey: string) {
if (Reflect.getMetadata("design:type", target, propertyKey) !== Array) {
throw new TypeError();
}
// ...
}
しかし、私はこのあまりにDEV-優しい考えていません。 TypeScriptコンパイラで特定のプロパティデコレータを使用できるようにするにはどうすればいいですか特定のタイプのプロパティののみ?
:
は、線に沿って何かを試してみてください? – Alex
@Alex次のシグネチャを持つデコレータは、関数本体にかかわらず常に問題を生成します。 '(target:any、property:string | symbol)=> PropertyDescriptor'。引数の型を互換性のある型に変更することは役に立ちませんが、ここで問題を引き起こす戻り型です。 PropertyDescriptorを返すのはおそらく[サポートされている](https://github.com/Microsoft/TypeScript-Handbook/blob/master/pages/Decorators.md#property-decorators)ので、これは奇妙です。 –