JSValue+JSBinding.h 1.59 KB
//
//  JSValue+JSBinding.h
//  SWAN
//
//  Created by baidu on 2018/7/19.
//  Copyright © 2018年 baidu. All rights reserved.
//

#import "BBAJSBindingError.h"


@interface JSValue (JSBinding)

/**
 JSValue转换为NSString类型,如果不是String|Number|boolean类型,返回nil

 @return JSValue对应的NSString
 */
- (NSString *)jsb_toString;

/**
 JSValue转换为boolean类型,如果不是String|boolean类型,返回nil
 
 @return JSValue对应的boolean类型
 */
- (BOOL)jsb_toBool;

/**
 JSValue转换为Number类型,如果不是Number|boolean类型,返回nil
 
 @return JSValue对应的Number类型
 */
- (NSNumber *)jsb_toNumber;

/**
 JSValue转换为Array类型,如果不是Array类型,返回nil
 
 @return JSValue对应的Array类型
 */
- (NSArray *)jsb_toArray;

/**
 JSValue转换为Dictionary类型,如果不是Dictionary类型,返回nil
 
 @return JSValue对应的Dictionary类型
 */
- (NSDictionary *)jsb_toDictionary;

/**
 JSValue转换为Object类型,如果不是Object类型,返回nil
 
 @return JSValue对应的Object类型
 */
- (id)jsb_toObject;

/**
 JSValue转换为Date类型,如果不是Date类型,返回nil
 
 @return JSValue对应的Date类型
 */
- (NSDate *)jsb_toDate;

/**
 判断一个JSValue是不是一个js function

 @param value JSValue
 @return YES/NO
 */
+ (BOOL)jsb_isJsFunctionWithJsValue:(JSValue *)value;

+ (BOOL)jsb_isArrayBufferWithJsValue:(JSValue *)value;

/**
 返回JSValue对应的BBAJSDataType

 @param value JSValue
 @return BBAJSDataType
 */
+ (BBAJSDataType)jsb_bbaJsDataTypeFormJsValue:(JSValue *)value API_AVAILABLE(ios(9.0));

@end