diff --git a/breeze/breeze-tests.ts b/breeze/breeze-tests.ts index e4ee91f74..3fe45d8bf 100644 --- a/breeze/breeze-tests.ts +++ b/breeze/breeze-tests.ts @@ -440,7 +440,7 @@ function test_entityState() { function test_entityType() { var myMetadataStore: breeze.MetadataStore; var myEntityType: breeze.EntityType; - var dataProperty1, dataProperty2, navigationProperty1: breeze.DataProperty; + var dataProperty1: breeze.DataProperty, dataProperty2: breeze.DataProperty, navigationProperty1: breeze.DataProperty; var em1: breeze.EntityManager; var entityManager = new breeze.EntityType({ metadataStore: myMetadataStore, @@ -453,7 +453,7 @@ function test_entityType() { myEntityType.addProperty(navigationProperty1); var custType = em1.metadataStore.getEntityType("Customer"); var countryProp = custType.getProperty("Country"); - var valFn = function (v) { + var valFn = function (v: string) { if (v == null) return true; return (v.substring(0,2) === "US"); }; @@ -533,15 +533,20 @@ function test_entityType() { // DayOfWeek.Friday.toString() === "Friday"; //} +interface CustomEntityManager extends breeze.EntityManager +{ + customTag: string; +} + function test_event() { - var myEntityManager: breeze.EntityManager; - var myEntity, person: breeze.Entity; + var myEntityManager: CustomEntityManager; + var myEntity: breeze.Entity, person: breeze.Entity; var salaryEvent = new core.Event("salaryEvent", person); core.Event.enable("propertyChanged", myEntityManager, false); core.Event.enable("propertyChanged", myEntityManager, true); core.Event.enable("propertyChanged", myEntity.entityAspect, false); core.Event.enable("propertyChanged", myEntity.entityAspect, null); - core.Event.enable("validationErrorsChanged", myEntityManager, function (em) { + core.Event.enable("validationErrorsChanged", myEntityManager, function (em: CustomEntityManager) { return em.customTag === "blue"; }); core.Event.isEnabled("propertyChanged", myEntityManager); @@ -694,8 +699,18 @@ function test_validationOptions() { var newOptions = validationOptions.using({ validateOnQuery: true, validateOnSave: false }); } +interface NumericRange +{ + max: number; + min: number; +} + +interface NumericRangeValidatorFunctionContext extends breeze.ValidatorFunctionContext, NumericRange +{ +} + function test_validator() { - var valFn = function (v) { + var valFn = function (v: any) { if (v == null) return true; return ( v.substr(0,2)=== "US"); }; @@ -707,11 +722,11 @@ function test_validator() { var custType = metadataStore.getEntityType("Customer"); var countryProp = custType.getProperty("Country"); countryProp.validators.push(countryValidator); - function isValidZipCode(value) { + function isValidZipCode(value: string) { var re = /^\d{5}([\-]\d{4})?$/; return (re.test(value)); } - var valFn = function (v) { + valFn = function (v: any) { if (v.getProperty("Country") === "USA") { var postalCode = v.getProperty("PostalCode"); return isValidZipCode(postalCode); @@ -723,8 +738,8 @@ function test_validator() { var em1: breeze.EntityManager; var custType = em1.metadataStore.getEntityType("Customer"); custType.validators.push(zipCodeValidator); - var numericRangeValidator = function (context) { - var valFn = function (v, ctx) { + var numericRangeValidator = function (context: NumericRange) { + var valFn = function (v: any, ctx: NumericRangeValidatorFunctionContext) { if (v == null) return true; if (typeof (v) !== "number") return false; if (ctx.min != null && v < ctx.min) return false; @@ -784,7 +799,7 @@ function test_validator() { var errMsg = result.errorMessage; var context = result.context; var sameValidator = result.validator; - var valFn = function (v) { + valFn = function (v: any) { if (v == null) return true; return (v.substr(0,2) === "US"); }; @@ -807,7 +822,7 @@ function test_demo() { function test_corefns() { var o1: Object; - var kvfn = function (p) { return p; } + var kvfn = function (p: any) { return p; } core.objectForEach(o1, kvfn); var o2: Object; diff --git a/breeze/breeze.d.ts b/breeze/breeze.d.ts index 5a3abd9aa..ab0e3c045 100644 --- a/breeze/breeze.d.ts +++ b/breeze/breeze.d.ts @@ -138,7 +138,7 @@ declare module breeze { shortName: string; unmappedProperties: DataProperty[]; validators: Validator[]; - addProperty(dataProperty: DataProperty); + addProperty(dataProperty: DataProperty): ComplexType; getProperties(): DataProperty[]; } @@ -643,8 +643,8 @@ declare module breeze { addDataService(dataService: DataService): void; addEntityType(structuralType: IStructuralType): void; exportMetadata(): string; - fetchMetadata(dataService: string, callback?: (data) => void , errorCallback?: breeze.core.ErrorCallback): Q.Promise; - fetchMetadata(dataService: DataService, callback?: (data) => void , errorCallback?: breeze.core.ErrorCallback): Q.Promise; + fetchMetadata(dataService: string, callback?: (data: any) => void , errorCallback?: breeze.core.ErrorCallback): Q.Promise; + fetchMetadata(dataService: DataService, callback?: (data: any) => void , errorCallback?: breeze.core.ErrorCallback): Q.Promise; getDataService(serviceName: string): DataService; getEntityType(entityTypeName: string, okIfNotFound?: boolean): IStructuralType; getEntityTypes(): IStructuralType[]; @@ -653,7 +653,7 @@ declare module breeze { importMetadata(exportedString: string): MetadataStore; isEmpty(): boolean; registerEntityTypeCtor(entityTypeName: string, entityCtor: Function, initializationFn?: (entity: Entity) =>void ): void; - trackUnmappedType(entityCtor: Function, interceptor?: Function); + trackUnmappedType(entityCtor: Function, interceptor?: Function): void; setEntityTypeForResourceName(resourceName: string, entityType: EntityType): void; setEntityTypeForResourceName(resourceName: string, entityTypeName: string): void; getEntityTypeNameForResourceName(resourceName: string): string; @@ -677,7 +677,7 @@ declare module breeze { serverPropertyNameToClient(serverPropertyName: string): string; serverPropertyNameToClient(serverPropertyName: string, property: IProperty): string; - setAsDefault(); + setAsDefault(): NamingConvention; } interface NamingConventionOptions { @@ -846,8 +846,8 @@ declare module breeze { static string(): Validator; static stringLength(context: { maxLength: number; minLength: number; }): Validator; - static register(validator: Validator); - static registerFactory(fn: () => Validator, name: string); + static register(validator: Validator): void; + static registerFactory(fn: () => Validator, name: string): void; validate(value: any, context?: any): ValidationError; getMessage(): string;