新增Insist断言

This commit is contained in:
yhh
2020-12-25 18:04:18 +08:00
parent 90d84f9316
commit 0738e51852
10 changed files with 255 additions and 108 deletions

View File

@@ -1,3 +1,14 @@
declare module es {
class Insist {
static fail(message?: string, ...args: any[]): void;
static isTrue(condition: boolean, message?: string, ...args: any[]): void;
static isFalse(condition: boolean, message?: string, ...args: any[]): void;
static isNull(obj: any, message?: string, ...args: any[]): void;
static isNotNull(obj: any, message?: string, ...args: any[]): void;
static areEqual(first: any, second: any, message: string, ...args: any[]): void;
static areNotEqual(first: any, second: any, message: string, ...args: any[]): void;
}
}
declare module es {
/**
* 执行顺序
@@ -1371,26 +1382,26 @@ declare class StringUtils {
private static specialSigns;
/**
* 匹配中文字符
* @param str 需要匹配的字符串
* @param str 需要匹配的字符串
* @return
*/
static matchChineseWord(str: string): string[];
/**
* 去除字符串左端的空白字符
* @param target 目标字符串
* @param target 目标字符串
* @return
*/
static lTrim(target: string): string;
/**
* 去除字符串右端的空白字符
* @param target 目标字符串
* @param target 目标字符串
* @return
*/
static rTrim(target: string): string;
/**
* 返回一个去除2段空白字符的字符串
* @param target
* @return 返回一个去除2段空白字符的字符串
* @param target
* @return 返回一个去除2段空白字符的字符串
*/
static trim(target: string): string;
/**
@@ -1401,36 +1412,23 @@ declare class StringUtils {
static isWhiteSpace(str: string): boolean;
/**
* 返回执行替换后的字符串
* @param mainStr 待查找字符串
* @param targetStr 目标字符串
* @param replaceStr 替换字符串
* @param caseMark 是否忽略大小写
* @return 返回执行替换后的字符串
* @param mainStr 待查找字符串
* @param targetStr 目标字符串
* @param replaceStr 替换字符串
* @param caseMark 是否忽略大小写
* @return 返回执行替换后的字符串
*/
static replaceMatch(mainStr: string, targetStr: string, replaceStr: string, caseMark?: boolean): string;
/**
* 用html实体换掉字符窜中的特殊字符
* @param str 需要替换的字符串
* @param reversion 是否翻转替换:将转义符号替换为正常的符号
* @return 换掉特殊字符后的字符串
* @param str 需要替换的字符串
* @param reversion 是否翻转替换:将转义符号替换为正常的符号
* @return 换掉特殊字符后的字符串
*/
static htmlSpecialChars(str: string, reversion?: boolean): string;
/**
* 给数字字符前面添 "0"
*
* <pre>
*
* trace( StringFormat.zfill('1') );
* // 01
*
* trace( StringFormat.zfill('16', 5) );
* // 00016
*
* trace( StringFormat.zfill('-3', 3) );
* // -03
*
* </pre>
*
* @param str 要进行处理的字符串
* @param width 处理后字符串的长度,
* 如果str.length >= width将不做任何处理直接返回原始的str。
@@ -1440,21 +1438,24 @@ declare class StringUtils {
static zfill(str: string, width?: number): string;
/**
* 翻转字符串
* @param str 字符串
* @return 翻转后的字符串
* @param str 字符串
* @return 翻转后的字符串
*/
static reverse(str: string): string;
/**
* 截断某段字符串
* @param str 目标字符串
* @param start 需要截断的起始索引
* @param len 截断长度
* @param order 顺序true从字符串头部开始计算false从字符串尾巴开始结算。
* @return 截断后的字符串
* @param str 目标字符串
* @param start 需要截断的起始索引
* @param en 截断长度
* @param order 顺序true从字符串头部开始计算false从字符串尾巴开始结算。
* @return 截断后的字符串
*/
static cutOff(str: string, start: number, len: number, order?: boolean): string;
/**{0} 字符替换 */
/**
* {0} 字符替换
*/
static strReplace(str: string, rStr: string[]): string;
static format(str: string, ...args: any[]): string;
}
declare module es {
/** 提供帧定时信息 */

View File

@@ -75,6 +75,98 @@ var __spread = (this && this.__spread) || function () {
return ar;
};
var es;
(function (es) {
var Insist = /** @class */ (function () {
function Insist() {
}
Insist.fail = function (message) {
if (message === void 0) { message = null; }
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
}
if (message == null) {
console.assert(false);
}
else {
console.assert(false, StringUtils.format(message, args));
}
};
Insist.isTrue = function (condition, message) {
if (message === void 0) { message = null; }
var args = [];
for (var _i = 2; _i < arguments.length; _i++) {
args[_i - 2] = arguments[_i];
}
if (!condition) {
if (message == null) {
this.fail();
}
else {
this.fail(message, args);
}
}
};
Insist.isFalse = function (condition, message) {
if (message === void 0) { message = null; }
var args = [];
for (var _i = 2; _i < arguments.length; _i++) {
args[_i - 2] = arguments[_i];
}
if (message == null) {
this.isTrue(!condition);
}
else {
this.isTrue(!condition, message, args);
}
};
Insist.isNull = function (obj, message) {
if (message === void 0) { message = null; }
var args = [];
for (var _i = 2; _i < arguments.length; _i++) {
args[_i - 2] = arguments[_i];
}
if (message == null) {
this.isTrue(obj == null);
}
else {
this.isTrue(obj == null, message, args);
}
};
Insist.isNotNull = function (obj, message) {
if (message === void 0) { message = null; }
var args = [];
for (var _i = 2; _i < arguments.length; _i++) {
args[_i - 2] = arguments[_i];
}
if (message == null) {
this.isTrue(obj != null);
}
else {
this.isTrue(obj != null, message, args);
}
};
Insist.areEqual = function (first, second, message) {
var args = [];
for (var _i = 3; _i < arguments.length; _i++) {
args[_i - 3] = arguments[_i];
}
if (first != second)
this.fail(message, args);
};
Insist.areNotEqual = function (first, second, message) {
var args = [];
for (var _i = 3; _i < arguments.length; _i++) {
args[_i - 3] = arguments[_i];
}
if (first == second)
this.fail(message, args);
};
return Insist;
}());
es.Insist = Insist;
})(es || (es = {}));
var es;
(function (es) {
/**
* 执行顺序
@@ -3514,7 +3606,7 @@ var StringUtils = /** @class */ (function () {
}
/**
* 匹配中文字符
* @param str 需要匹配的字符串
* @param str 需要匹配的字符串
* @return
*/
StringUtils.matchChineseWord = function (str) {
@@ -3524,7 +3616,7 @@ var StringUtils = /** @class */ (function () {
};
/**
* 去除字符串左端的空白字符
* @param target 目标字符串
* @param target 目标字符串
* @return
*/
StringUtils.lTrim = function (target) {
@@ -3536,7 +3628,7 @@ var StringUtils = /** @class */ (function () {
};
/**
* 去除字符串右端的空白字符
* @param target 目标字符串
* @param target 目标字符串
* @return
*/
StringUtils.rTrim = function (target) {
@@ -3548,8 +3640,8 @@ var StringUtils = /** @class */ (function () {
};
/**
* 返回一个去除2段空白字符的字符串
* @param target
* @return 返回一个去除2段空白字符的字符串
* @param target
* @return 返回一个去除2段空白字符的字符串
*/
StringUtils.trim = function (target) {
if (target == null) {
@@ -3569,11 +3661,11 @@ var StringUtils = /** @class */ (function () {
};
/**
* 返回执行替换后的字符串
* @param mainStr 待查找字符串
* @param targetStr 目标字符串
* @param replaceStr 替换字符串
* @param caseMark 是否忽略大小写
* @return 返回执行替换后的字符串
* @param mainStr 待查找字符串
* @param targetStr 目标字符串
* @param replaceStr 替换字符串
* @param caseMark 是否忽略大小写
* @return 返回执行替换后的字符串
*/
StringUtils.replaceMatch = function (mainStr, targetStr, replaceStr, caseMark) {
if (caseMark === void 0) { caseMark = false; }
@@ -3600,9 +3692,9 @@ var StringUtils = /** @class */ (function () {
};
/**
* 用html实体换掉字符窜中的特殊字符
* @param str 需要替换的字符串
* @param reversion 是否翻转替换:将转义符号替换为正常的符号
* @return 换掉特殊字符后的字符串
* @param str 需要替换的字符串
* @param reversion 是否翻转替换:将转义符号替换为正常的符号
* @return 换掉特殊字符后的字符串
*/
StringUtils.htmlSpecialChars = function (str, reversion) {
if (reversion === void 0) { reversion = false; }
@@ -3624,19 +3716,6 @@ var StringUtils = /** @class */ (function () {
/**
* 给数字字符前面添 "0"
*
* <pre>
*
* trace( StringFormat.zfill('1') );
* // 01
*
* trace( StringFormat.zfill('16', 5) );
* // 00016
*
* trace( StringFormat.zfill('-3', 3) );
* // -03
*
* </pre>
*
* @param str 要进行处理的字符串
* @param width 处理后字符串的长度,
* 如果str.length >= width将不做任何处理直接返回原始的str。
@@ -3669,8 +3748,8 @@ var StringUtils = /** @class */ (function () {
};
/**
* 翻转字符串
* @param str 字符串
* @return 翻转后的字符串
* @param str 字符串
* @return 翻转后的字符串
*/
StringUtils.reverse = function (str) {
if (str.length > 1)
@@ -3680,11 +3759,11 @@ var StringUtils = /** @class */ (function () {
};
/**
* 截断某段字符串
* @param str 目标字符串
* @param start 需要截断的起始索引
* @param len 截断长度
* @param order 顺序true从字符串头部开始计算false从字符串尾巴开始结算。
* @return 截断后的字符串
* @param str 目标字符串
* @param start 需要截断的起始索引
* @param en 截断长度
* @param order 顺序true从字符串头部开始计算false从字符串尾巴开始结算。
* @return 截断后的字符串
*/
StringUtils.cutOff = function (str, start, len, order) {
if (order === void 0) { order = true; }
@@ -3706,7 +3785,9 @@ var StringUtils = /** @class */ (function () {
}
return newStr;
};
/**{0} 字符替换 */
/**
* {0} 字符替换
*/
StringUtils.strReplace = function (str, rStr) {
var i = 0, len = rStr.length;
for (; i < len; i++) {
@@ -3717,6 +3798,17 @@ var StringUtils = /** @class */ (function () {
}
return str;
};
StringUtils.format = function (str) {
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
}
for (var i = 0; i < args.length - 1; i++) {
var reg = new RegExp("\\{" + i + "\\}", "gm");
str = str.replace(reg, args[i + 1]);
}
return str;
};
/**
* 特殊符号字符串
*/

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,56 @@
module es {
export class Insist {
public static fail(message: string = null, ...args: any[]) {
if (message == null) {
console.assert(false);
} else {
console.assert(false, StringUtils.format(message, args));
}
}
public static isTrue(condition: boolean, message: string = null, ...args: any[]) {
if (!condition) {
if (message == null) {
this.fail();
} else {
this.fail(message, args);
}
}
}
public static isFalse(condition: boolean, message: string = null, ...args: any[]) {
if (message == null) {
this.isTrue(!condition);
} else {
this.isTrue(!condition, message, args);
}
}
public static isNull(obj, message: string = null, ...args: any[]) {
if (message == null) {
this.isTrue(obj == null);
} else {
this.isTrue(obj == null, message, args);
}
}
public static isNotNull(obj, message: string = null, ...args: any[]) {
if (message == null) {
this.isTrue(obj != null);
} else {
this.isTrue(obj != null, message, args);
}
}
public static areEqual(first, second, message: string, ...args: any[]) {
if (first != second)
this.fail(message, args);
}
public static areNotEqual(first, second, message: string, ...args: any[]) {
if (first == second)
this.fail(message, args);
}
}
}

View File

@@ -15,7 +15,7 @@ class StringUtils {
/**
* 匹配中文字符
* @param str 需要匹配的字符串
* @param str 需要匹配的字符串
* @return
*/
public static matchChineseWord(str: string): string[] {
@@ -26,7 +26,7 @@ class StringUtils {
/**
* 去除字符串左端的空白字符
* @param target 目标字符串
* @param target 目标字符串
* @return
*/
public static lTrim(target: string): string {
@@ -39,7 +39,7 @@ class StringUtils {
/**
* 去除字符串右端的空白字符
* @param target 目标字符串
* @param target 目标字符串
* @return
*/
public static rTrim(target: string): string {
@@ -52,8 +52,8 @@ class StringUtils {
/**
* 返回一个去除2段空白字符的字符串
* @param target
* @return 返回一个去除2段空白字符的字符串
* @param target
* @return 返回一个去除2段空白字符的字符串
*/
public static trim(target: string): string {
if (target == null) {
@@ -75,11 +75,11 @@ class StringUtils {
/**
* 返回执行替换后的字符串
* @param mainStr 待查找字符串
* @param targetStr 目标字符串
* @param replaceStr 替换字符串
* @param caseMark 是否忽略大小写
* @return 返回执行替换后的字符串
* @param mainStr 待查找字符串
* @param targetStr 目标字符串
* @param replaceStr 替换字符串
* @param caseMark 是否忽略大小写
* @return 返回执行替换后的字符串
*/
public static replaceMatch(mainStr: string, targetStr: string,
replaceStr: string, caseMark: boolean = false): string {
@@ -106,9 +106,9 @@ class StringUtils {
/**
* 用html实体换掉字符窜中的特殊字符
* @param str 需要替换的字符串
* @param reversion 是否翻转替换:将转义符号替换为正常的符号
* @return 换掉特殊字符后的字符串
* @param str 需要替换的字符串
* @param reversion 是否翻转替换:将转义符号替换为正常的符号
* @return 换掉特殊字符后的字符串
*/
public static htmlSpecialChars(str: string, reversion: boolean = false): string {
let len: number = this.specialSigns.length;
@@ -131,19 +131,6 @@ class StringUtils {
/**
* 给数字字符前面添 "0"
*
* <pre>
*
* trace( StringFormat.zfill('1') );
* // 01
*
* trace( StringFormat.zfill('16', 5) );
* // 00016
*
* trace( StringFormat.zfill('-3', 3) );
* // -03
*
* </pre>
*
* @param str 要进行处理的字符串
* @param width 处理后字符串的长度,
* 如果str.length >= width将不做任何处理直接返回原始的str。
@@ -181,8 +168,8 @@ class StringUtils {
/**
* 翻转字符串
* @param str 字符串
* @return 翻转后的字符串
* @param str 字符串
* @return 翻转后的字符串
*/
public static reverse(str: string): string {
if (str.length > 1)
@@ -194,11 +181,11 @@ class StringUtils {
/**
* 截断某段字符串
* @param str 目标字符串
* @param start 需要截断的起始索引
* @param len 截断长度
* @param order 顺序true从字符串头部开始计算false从字符串尾巴开始结算。
* @return 截断后的字符串
* @param str 目标字符串
* @param start 需要截断的起始索引
* @param en 截断长度
* @param order 顺序true从字符串头部开始计算false从字符串尾巴开始结算。
* @return 截断后的字符串
*/
public static cutOff(str: string, start: number,
len: number, order: boolean = true): string {
@@ -219,7 +206,9 @@ class StringUtils {
return newStr;
}
/**{0} 字符替换 */
/**
* {0} 字符替换
*/
public static strReplace(str: string, rStr: string[]): string {
let i: number = 0, len: number = rStr.length;
for (; i < len; i++) {
@@ -230,4 +219,13 @@ class StringUtils {
}
return str
}
public static format(str: string, ...args: any[]) {
for (let i = 0; i < args.length - 1; i++) {
let reg = new RegExp("\\{" + i + "\\}", "gm");
str = str.replace(reg, args[i + 1]);
}
return str;
}
}