TypeUtils 是一组函数和类,用于扩展 Power BI 视觉对象的基本类型。
安装
若要安装包,请在目录中运行以下命令和当前的自定义视觉对象:
npm install powerbi-visuals-utils-typeutils --save
上面的命令安装此包,并将它作为依赖项添加到 package.json 文件。
Double
Double 模块提供操纵数值精度的功能。
它包括以下功能:
pow10
此函数返回 10 的幂。
function pow10(exp: number): number;
示例:
import { double } from "powerbi-visuals-utils-typeutils";
// ...
double.pow10(25);
// returns: 1e+25
log10
此函数返回数字以 10 为底的对数。
function log10(val: number): number;
示例:
import { double } from "powerbi-visuals-utils-typeutils";
// ...
double.log10(25);
// returns: 1
getPrecision
此函数返回 10 的幂,表示数值的精度。
function getPrecision(x: number, decimalDigits?: number): number;
示例:
import { double } from "powerbi-visuals-utils-typeutils";
// ...
double.getPrecision(562344, 6);
// returns: 0.1
equalWithPrecision
此函数检查两个数字之间的增量是否小于提供的精度。
function equalWithPrecision(x: number, y: number, precision?: number): boolean;
示例:
import { double } from "powerbi-visuals-utils-typeutils";
// ...
double.equalWithPrecision(1, 1.005, 0.01);
// returns: true
lessWithPrecision
此函数检查第一个值是否小于第二个值。
function lessWithPrecision(x: number, y: number, precision?: number): boolean;
示例:
import { double } from "powerbi-visuals-utils-typeutils";
// ...
double.lessWithPrecision(0.995, 1, 0.001);
// returns: true
lessOrEqualWithPrecision
此函数检查第一个值是否小于或等于第二个值。
function lessOrEqualWithPrecision(x: number, y: number, precision?: number): boolean;
示例:
import { double } from "powerbi-visuals-utils-typeutils";
// ...
double.lessOrEqualWithPrecision(1.005, 1, 0.01);
// returns: true
greaterWithPrecision
此函数检查第一个值是否大于第二个值。
function greaterWithPrecision(x: number, y: number, precision?: number): boolean;
示例:
import { double } from "powerbi-visuals-utils-typeutils";
// ...
double.greaterWithPrecision(1, 0.995, 0.01);
// returns: false
greaterOrEqualWithPrecision
此函数检查第一个值是否大于或等于第二个值。
function greaterOrEqualWithPrecision(x: number, y: number, precision?: number): boolean;
示例:
import { double } from "powerbi-visuals-utils-typeutils";
// ...
double.greaterOrEqualWithPrecision(1, 1.005, 0.01);
// returns: true
floorWithPrecision
此函数以提供的精度对数字进行向下取值。
function floorWithPrecision(x: number, precision?: number): number;
示例:
import { double } from "powerbi-visuals-utils-typeutils";
// ...
double.floorWithPrecision(5.96, 0.001);
// returns: 5
ceilWithPrecision
此函数以提供的精度对数字进行 ceils。
function ceilWithPrecision(x: number, precision?: number): number;
示例:
import { double } from "powerbi-visuals-utils-typeutils";
// ...
double.ceilWithPrecision(5.06, 0.001);
// returns: 6
floorToPrecision
此函数将数字向下取值至提供的精度。
function floorToPrecision(x: number, precision?: number): number;
示例:
import { double } from "powerbi-visuals-utils-typeutils";
// ...
double.floorToPrecision(5.96, 0.1);
// returns: 5.9
ceilToPrecision
此函数将数字 ceils 至提供的精度。
function ceilToPrecision(x: number, precision?: number): number;
示例:
import { double } from "powerbi-visuals-utils-typeutils";
// ...
double.ceilToPrecision(-506, 10);
// returns: -500
roundToPrecision
此函数将数字舍入至提供的精度。
function roundToPrecision(x: number, precision?: number): number;
示例:
import { double } from "powerbi-visuals-utils-typeutils";
// ...
double.roundToPrecision(596, 10);
// returns: 600
ensureInRange
此函数返回介于最小值和最大值之间的数字。
function ensureInRange(x: number, min: number, max: number): number;
示例:
import { double } from "powerbi-visuals-utils-typeutils";
// ...
double.ensureInRange(-27.2, -10, -5);
// returns: -10
round
此函数对数字进行舍入。
function round(x: number): number;
示例:
import { double } from "powerbi-visuals-utils-typeutils";
// ...
double.round(27.45);
// returns: 27
removeDecimalNoise
此函数对数字进行四舍五入,以消除一些小数位。
function removeDecimalNoise(value: number): number;
示例:
import { double } from "powerbi-visuals-utils-typeutils";
// ...
double.removeDecimalNoise(21.493000000000002);
// returns: 21.493
isInteger
此函数检查数字是否为整数。
function isInteger(value: number): boolean;
示例:
import { double } from "powerbi-visuals-utils-typeutils";
// ...
double.isInteger(21.493000000000002);
// returns: false
toIncrement
此函数按所提供的数字递增数字,并返回舍入的数字。
function toIncrement(value: number, increment: number): number;
示例:
import { double } from "powerbi-visuals-utils-typeutils";
// ...
double.toIncrement(0.6383723, 0.05);
// returns: 0.65
原型
Prototype 模块提供继承对象的功能。
它包括以下功能:
inherit
此函数返回一个以提供的对象作为其原型的新对象。
function inherit<T>(obj: T, extension?: (inherited: T) => void): T;
示例:
import { prototype } from "powerbi-visuals-utils-typeutils";
// ...
let base = { Microsoft: "Power BI" };
prototype.inherit(base);
/* returns: {
__proto__: {
Microsoft: "Power BI"
}
}*/
inheritSingle
当且仅当未设置原型时,此函数返回以提供的对象作为其原型的新对象。
function inheritSingle<T>(obj: T): T;
示例:
import { prototype } from "powerbi-visuals-utils-typeutils";
// ...
let base = { Microsoft: "Power BI" };
prototype.inheritSingle(base);
/* returns: {
__proto__: {
Microsoft: "Power BI"
}
}*/
PixelConverter
PixelConverter 模块提供将像素转换为点以及将点转换为像素的功能。
它包括以下功能:
toString
此函数将像素值转换为字符串。
function toString(px: number): string;
示例:
import { pixelConverter } from "powerbi-visuals-utils-typeutils";
// ...
pixelConverter.toString(25);
// returns: 25px
fromPoint
此函数将提供的点值转换为像素值并返回字符串解释。
function fromPoint(pt: number): string;
示例:
import { pixelConverter } from "powerbi-visuals-utils-typeutils";
// ...
pixelConverter.fromPoint(8);
// returns: 33.33333333333333px
fromPointToPixel
此函数将提供的点值转换为像素值。
function fromPointToPixel(pt: number): number;
示例:
import { pixelConverter } from "powerbi-visuals-utils-typeutils";
// ...
pixelConverter.fromPointToPixel(8);
// returns: 10.666666666666666
toPoint
此函数将像素值转换为点值。
function toPoint(px: number): number;
示例:
import { pixelConverter } from "powerbi-visuals-utils-typeutils";
// ...
pixelConverter.toPoint(8);
// returns: 6