diff --git a/packages/demo-protobuf/src/decorator.ts b/packages/demo-protobuf/src/decorator.ts index 11748e41bd..3400fccec7 100644 --- a/packages/demo-protobuf/src/decorator.ts +++ b/packages/demo-protobuf/src/decorator.ts @@ -15,15 +15,20 @@ export function CosmosMessage(registry: Registry, typeUrl: string): TypeDecorato }; } +/** + * Like PropertyDecorator from lib.es5.d.ts but without symbol support in propertyKey. + */ +export type FieldDecorator = (target: object, propertyKey: string) => void; + export const CosmosField = { - Boolean: (id: number) => Field.d(id, "bool"), + Boolean: (id: number): FieldDecorator => Field.d(id, "bool"), - String: (id: number) => Field.d(id, "string"), - Bytes: (id: number) => Field.d(id, "bytes"), + String: (id: number): FieldDecorator => Field.d(id, "string"), + Bytes: (id: number): FieldDecorator => Field.d(id, "bytes"), - Int64: (id: number) => Field.d(id, "int64"), - Uint64: (id: number) => Field.d(id, "uint64"), + Int64: (id: number): FieldDecorator => Field.d(id, "int64"), + Uint64: (id: number): FieldDecorator => Field.d(id, "uint64"), - RepeatedString: (id: number) => Field.d(id, "string", "repeated"), - Nested: (id: number, ctor: Constructor>) => Field.d(id, ctor), + RepeatedString: (id: number): FieldDecorator => Field.d(id, "string", "repeated"), + Nested: (id: number, ctor: Constructor>): FieldDecorator => Field.d(id, ctor), }; diff --git a/packages/demo-protobuf/types/decorator.d.ts b/packages/demo-protobuf/types/decorator.d.ts index dd9dbd947c..fab8845774 100644 --- a/packages/demo-protobuf/types/decorator.d.ts +++ b/packages/demo-protobuf/types/decorator.d.ts @@ -1,12 +1,16 @@ import { Constructor, Message, TypeDecorator } from "protobufjs"; import { Registry } from "./registry"; export declare function CosmosMessage(registry: Registry, typeUrl: string): TypeDecorator; +/** + * Like PropertyDecorator from lib.es5.d.ts but without symbol support in propertyKey. + */ +export declare type FieldDecorator = (target: object, propertyKey: string) => void; export declare const CosmosField: { - Boolean: (id: number) => import("protobufjs").FieldDecorator; - String: (id: number) => import("protobufjs").FieldDecorator; - Bytes: (id: number) => import("protobufjs").FieldDecorator; - Int64: (id: number) => import("protobufjs").FieldDecorator; - Uint64: (id: number) => import("protobufjs").FieldDecorator; - RepeatedString: (id: number) => import("protobufjs").FieldDecorator; - Nested: (id: number, ctor: Constructor>) => import("protobufjs").FieldDecorator; + Boolean: (id: number) => FieldDecorator; + String: (id: number) => FieldDecorator; + Bytes: (id: number) => FieldDecorator; + Int64: (id: number) => FieldDecorator; + Uint64: (id: number) => FieldDecorator; + RepeatedString: (id: number) => FieldDecorator; + Nested: (id: number, ctor: Constructor>) => FieldDecorator; };