Skip to content

Commit 6a4c131

Browse files
committed
fix: optimize isJsonString function
1 parent 69276c4 commit 6a4c131

File tree

3 files changed

+9
-6
lines changed

3 files changed

+9
-6
lines changed

src/tooltip.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* onmouseenter="handleMouseEnter({'#root', title: 'title content', event: event})">title content </span>
88
*/
99

10-
import { getStrWidthPx } from './string';
10+
import { getStrWidthPx } from './dom';
1111

1212
interface ITooltipParams {
1313
rootElId: string;

src/type.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,14 @@ export const isDate = (any: unknown): any is Date => typeIs(any) === 'Date';
5454
export const isError = (any: unknown): any is Error => typeIs(any) === 'Error';
5555
export const isRegExp = (any: unknown): any is RegExp => typeIs(any) === 'RegExp';
5656
/**
57-
* 判断一个字符串是否为有效的 JSON
57+
* 判断一个字符串是否为有效的 JSON, 若有效则返回有效的JSON对象,否则false
5858
* @param {string} str
59-
* @return {boolean}
59+
* @return {Object | boolean}
6060
*/
61-
export function isJsonString(str: string): boolean {
61+
export function isJsonString(str: string): Object | boolean {
6262
try {
6363
const parsed = JSON.parse(str);
64-
return typeof parsed === 'object' && parsed !== null;
64+
return typeof parsed === 'object' && parsed !== null ? parsed : false;
6565
} catch (e) {
6666
return false;
6767
}

test/type.test.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,9 @@ test('isRegExp', () => {
9595
test('isJsonString', () => {
9696
const jsonString = '{"name": "John", "age": 30}';
9797
const invalidJsonString = '{"name": "John", "age": 30';
98-
expect(isJsonString(jsonString)).toBe(true);
98+
expect(isJsonString(jsonString)).toEqual({
99+
name: 'John',
100+
age: 30
101+
});
99102
expect(isJsonString(invalidJsonString)).toBe(false);
100103
});

0 commit comments

Comments
 (0)