通过


类型 utils

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