小程序 XQTypeScriptFramework 使用

管理员

说明

XQTypeScriptFramework 隶属于 XQFramework 下 JS 基础性框架部分

XQFramework 励志将开发将常用开发语言 基础性框架 统一汇总,为全站开发使用到的基础语法进行统一,拜托不同语言间基础语法不一致的痛点,让全站开发门更加的便捷,若XQFramework有不足之处,诚心聆听大佬们的宝贵意见对 XQFramework 进行升级改造

安装

npm install xq-type-script-framework

yarn add xq-type-script-framework

传送门

使用

全部引入
project.config.json 配置:

"packNpmManually": true,
"packNpmRelationList": [
      {
        "packageJsonPath": "./miniprogram/package.json",
        "miniprogramNpmDistDir": "/miniprogram/"
      }
  ],

tsconfig.json 配置:

{
  "compilerOptions": {
    "types": [
      "miniprogram-api-typings",
      "xq-type-script-framework"
    ]
  },
  "include": [
    "./**/*.ts",
    "./miniprogram/node_modules/**/*.ts"
  ],

扩展汇总


  • Array
  • Date
  • Object
  • String

扩展部分使用示例

注:整个 xq-type-script-framework 处理 NULL 指针,开发过程中无需为 NULL 指针做处理

// 判断是否为空
["iOS", "Android"].xq_isNull(); // false
// 判断是否为空
"XQFramework".xq_isNull(); // false
// 获取第一个对象
["iOS", "Android"].xq_firstElement(); // "iOS"
// 获得纯文件名,带后缀
"https://avatars.githubusercontent.com/u/22712251.png".xq_lastPathComponent(); // 22712251.png

扩展明细

  • Array 扩展方法
/**
 * 数组扩展工具类
 */
interface Array< T > {

  /**
   * 获取第一个元素
   */
  xq_firstElement(): T | undefined;

  /**
   * 获取最后一个元素
   */
  xq_lastElement(): T | undefined;

  /**
   * 添加一个元素
   * @param obj  元素
   */ 
  xq_addElement(obj: T): void;

  /**
   * 添加一组元素
   * @param objs  元素
   */ 
  xq_addElements(objs: T[], index: number): void;

  /**
   * 插入一个元素
   * @param obj  元素
   * @param index  添加元素的位置下标 默认数组的尾部
   */ 
  xq_insertElement(obj: T, index: number): void;

  /**
   * 插入一组元素
   * @param objs  元素
   * @param index  添加元素的位置下标 默认数组的尾部
   */ 
  xq_insertElements(objs: T[], index: number): void;

  /**
   * 删除指定元素
   * @param obj 元素
   */
  xq_removeElement(obj: T) : void;

  /**
   * 获取元素下标
   * @param obj 元素
   */
  xq_indexOfElement(obj: T): number;

  /**
   * 删除指定下标元素
   * @param index 下标
   */
  xq_removeElementAtIndex(index: number) : void;

  /**
   * 数组是否包含某个元素
   * @param obj 
   */
  xq_containsObject(obj: T): boolean;

  /**
   * 清除数组
   */
  xq_clean(): void;
}
  • 日期扩展方法
/**
 * Date 扩展工具类
 */
interface Date {

  /**
   * 时间格式化 yyyy-MM-dd HH:mm:ss
   */
  xq_format_yyyy_MM_dd_HH_mm_ss() : string;

  /**
   * 时间格式化 yyyy-MM-dd
   */
  xq_format_yyyy_MM_dd() : string;

  /**
   * 时间格式化 MM-dd HH:mm
   */
  xq_format_MM_dd_HH_mm() : string;

  /**
   * 时间格式化 HH:mm:ss
   */
  xq_format_HH_mm_ss() : string;

  /**
   * 时间格式化 HH:mm
   */
  xq_format_HH_mm() : string;

  /**
   * 时间格式化
   * @param fmt 时间格式化格式
   */
  xq_format(fmt : string) : string;
}
  • Object扩展方法
/**
 * 类 扩展工具类
 */
interface Object {

  // 是否为空
  xq_isNull() : boolean;

  // 是否不为空
  xq_isNotNull() : boolean;
}
/**
 * 类 扩展工具类
 */
interface Object {
  /**
   * 模拟深拷贝
   * @param obj 拷贝对象
   */
  xq_deepClone(obj: any) : any;
}
  • String 扩展方法
/**
 *  扩展工具类
 */
interface String {

  /**
   * 唯一标识
   */
  xq_GUID() : string;

}
/**
 *  扩展工具类
 */
interface String {

  /**
   * 是否是电话号码
   */
  xq_isPhone() : boolean;

  /**
   * 是否是数字
   */
  xq_isNumber() : boolean;

}
/**
 * 字符串 扩展工具类
 */
interface String {

  /** 
   * 获得纯文件名,带后缀
   */
  xq_lastPathComponent() : string | undefined ; 

  /**
   * 获得文件路径,不带后缀
   */
  xq_stringByDeletingPathExtension() : string | undefined ;

  /**
   * 获得文件后缀
   */
  xq_pathExtension() : string | undefined ;
}
/**
 * 字符串 扩展工具类
 */
interface String {

  /**
   * 去掉多余空格
   */
  xq_removeSpace() : string | undefined ; 

  /**
   * 强转string(包含空字符串),并去掉多余空格
   */
  xq_removeSpaceWithEmpty() : string | undefined ;

}