gpt4 book ai didi

typescript - TypeScript中数字的扩展方法

转载 作者:行者123 更新时间:2023-12-04 01:34:01 26 4
gpt4 key购买 nike

我读过add Extension Methods to types in TypeScript 是可能的,但是在将其应用于内置类型 Number 时遇到了一些麻烦。

这是一些代码:

文件 A:NumberExtensions.ts

// tslint:disable-next-line:class-name interface-name
export interface Number {
isBigNumber(value: number): boolean;
}
// @ts-ignore
Number.prototype.isBigNumber = (value: number) => {
return value > 100000;
};

文件B:使用上述
import { Number } from "./NumberExtensions";

foo() {
const aBigNumber: number = 1000000000;

// Errors here TS2339: Property 'isBigNumber' does not exist on type 'number'.
if (aBigNumber.isBigNumber()) {
console.log("It's a big number!");
}
}

我对 TypeScript 扩展方法的声明和使用是否正确?

最佳答案

由于您在作为模块的文件中定义了扩充,因此您需要在 declare global 中添加扩充声明。 :


export { }
declare global {
export interface Number {
isBigNumber(): boolean;
}
}
Number.prototype.isBigNumber = function (this: number) {
return this > 100000;
};

function foo() {
const aBigNumber: number = 1000000000;

// Errors here TS2339: Property 'isBigNumber' does not exist on type 'number'.
if (aBigNumber.isBigNumber()) {
console.log("It's a big number!");
}
}




Playground Link

关于typescript - TypeScript中数字的扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60231842/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com