128 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
		
		
			
		
	
	
			128 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Contains functions for checking that supplied arguments are of a specified type
							 | 
						||
| 
								 | 
							
								 * or meet specified conditions
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								export const Check: {
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Throws if test is not defined
							 | 
						||
| 
								 | 
							
								   *
							 | 
						||
| 
								 | 
							
								   * @param {string} name The name of the variable being tested
							 | 
						||
| 
								 | 
							
								   * @param {*} test The value that is to be checked
							 | 
						||
| 
								 | 
							
								   * @exception {DeveloperError} test must be defined
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  defined<T>(name: string, test: T): asserts test is NonNullable<T>;
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Contains type checking functions, all using the typeof operator
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  typeOf: {
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Throws if test is not typeof 'string'
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @param {string} name The name of the variable being tested
							 | 
						||
| 
								 | 
							
								     * @param {*} test The value to test
							 | 
						||
| 
								 | 
							
								     * @exception {DeveloperError} test must be typeof 'string'
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    string(name: string, test: any): asserts test is string;
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Throws if test is not typeof 'function'
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @param {string} name The name of the variable being tested
							 | 
						||
| 
								 | 
							
								     * @param {*} test The value to test
							 | 
						||
| 
								 | 
							
								     * @exception {DeveloperError} test must be typeof 'function'
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    func(name: string, test: any): asserts test is Function;
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Throws if test is not typeof 'object'
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @param {string} name The name of the variable being tested
							 | 
						||
| 
								 | 
							
								     * @param {*} test The value to test
							 | 
						||
| 
								 | 
							
								     * @exception {DeveloperError} test must be typeof 'object'
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    object(name: string, test: any): asserts test is object;
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Throws if test is not typeof 'boolean'
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @param {string} name The name of the variable being tested
							 | 
						||
| 
								 | 
							
								     * @param {*} test The value to test
							 | 
						||
| 
								 | 
							
								     * @exception {DeveloperError} test must be typeof 'boolean'
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    bool(name: string, test: any): asserts test is boolean;
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Throws if test is not typeof 'bigint'
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @param {string} name The name of the variable being tested
							 | 
						||
| 
								 | 
							
								     * @param {*} test The value to test
							 | 
						||
| 
								 | 
							
								     * @exception {DeveloperError} test must be typeof 'bigint'
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    bigint(name: string, test: any): asserts test is bigint;
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Throws if test is not typeof 'number'
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @param {string} name The name of the variable being tested
							 | 
						||
| 
								 | 
							
								     * @param {*} test The value to test
							 | 
						||
| 
								 | 
							
								     * @exception {DeveloperError} test must be typeof 'number'
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    number: {
							 | 
						||
| 
								 | 
							
								      (name: string, test: any): void;
							 | 
						||
| 
								 | 
							
								      /**
							 | 
						||
| 
								 | 
							
								       * Throws if test is not typeof 'number' and less than limit
							 | 
						||
| 
								 | 
							
								       *
							 | 
						||
| 
								 | 
							
								       * @param {string} name The name of the variable being tested
							 | 
						||
| 
								 | 
							
								       * @param {*} test The value to test
							 | 
						||
| 
								 | 
							
								       * @param {number} limit The limit value to compare against
							 | 
						||
| 
								 | 
							
								       * @exception {DeveloperError} test must be typeof 'number' and less than limit
							 | 
						||
| 
								 | 
							
								       */
							 | 
						||
| 
								 | 
							
								      lessThan(name: string, test: any, limit: number): asserts test is number;
							 | 
						||
| 
								 | 
							
								      /**
							 | 
						||
| 
								 | 
							
								       * Throws if test is not typeof 'number' and less than or equal to limit
							 | 
						||
| 
								 | 
							
								       *
							 | 
						||
| 
								 | 
							
								       * @param {string} name The name of the variable being tested
							 | 
						||
| 
								 | 
							
								       * @param {*} test The value to test
							 | 
						||
| 
								 | 
							
								       * @param {number} limit The limit value to compare against
							 | 
						||
| 
								 | 
							
								       * @exception {DeveloperError} test must be typeof 'number' and less than or equal to limit
							 | 
						||
| 
								 | 
							
								       */
							 | 
						||
| 
								 | 
							
								      lessThanOrEquals(
							 | 
						||
| 
								 | 
							
								        name: string,
							 | 
						||
| 
								 | 
							
								        test: any,
							 | 
						||
| 
								 | 
							
								        limit: number
							 | 
						||
| 
								 | 
							
								      ): asserts test is number;
							 | 
						||
| 
								 | 
							
								      /**
							 | 
						||
| 
								 | 
							
								       * Throws if test is not typeof 'number' and greater than limit
							 | 
						||
| 
								 | 
							
								       *
							 | 
						||
| 
								 | 
							
								       * @param {string} name The name of the variable being tested
							 | 
						||
| 
								 | 
							
								       * @param {*} test The value to test
							 | 
						||
| 
								 | 
							
								       * @param {number} limit The limit value to compare against
							 | 
						||
| 
								 | 
							
								       * @exception {DeveloperError} test must be typeof 'number' and greater than limit
							 | 
						||
| 
								 | 
							
								       */
							 | 
						||
| 
								 | 
							
								      greaterThan(
							 | 
						||
| 
								 | 
							
								        name: string,
							 | 
						||
| 
								 | 
							
								        test: any,
							 | 
						||
| 
								 | 
							
								        limit: number
							 | 
						||
| 
								 | 
							
								      ): asserts test is number;
							 | 
						||
| 
								 | 
							
								      /**
							 | 
						||
| 
								 | 
							
								       * Throws if test is not typeof 'number' and greater than or equal to limit
							 | 
						||
| 
								 | 
							
								       *
							 | 
						||
| 
								 | 
							
								       * @param {string} name The name of the variable being tested
							 | 
						||
| 
								 | 
							
								       * @param {*} test The value to test
							 | 
						||
| 
								 | 
							
								       * @param {number} limit The limit value to compare against
							 | 
						||
| 
								 | 
							
								       * @exception {DeveloperError} test must be typeof 'number' and greater than or equal to limit
							 | 
						||
| 
								 | 
							
								       */
							 | 
						||
| 
								 | 
							
								      greaterThanOrEquals(
							 | 
						||
| 
								 | 
							
								        name: string,
							 | 
						||
| 
								 | 
							
								        test: any,
							 | 
						||
| 
								 | 
							
								        limit: number
							 | 
						||
| 
								 | 
							
								      ): asserts test is number;
							 | 
						||
| 
								 | 
							
								      /**
							 | 
						||
| 
								 | 
							
								       * Throws if test1 and test2 is not typeof 'number' and not equal in value
							 | 
						||
| 
								 | 
							
								       *
							 | 
						||
| 
								 | 
							
								       * @param {string} name1 The name of the first variable being tested
							 | 
						||
| 
								 | 
							
								       * @param {string} name2 The name of the second variable being tested against
							 | 
						||
| 
								 | 
							
								       * @param {*} test1 The value to test
							 | 
						||
| 
								 | 
							
								       * @param {*} test2 The value to test against
							 | 
						||
| 
								 | 
							
								       * @exception {DeveloperError} test1 and test2 should be type of 'number' and be equal in value
							 | 
						||
| 
								 | 
							
								       */
							 | 
						||
| 
								 | 
							
								      equals(name1: string, name2: string, test1: any, test2: any): void;
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								};
							 |