打印件中数字的扩展方法 [英] Extension method on number in TypeScript
本文介绍了打印件中数字的扩展方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我读到过add Extension Methods to types in TypeScript是可能的,但是将其应用于内置类型编号时遇到了一些问题。
以下是一些代码:
文件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!");
}
}
我的类型脚本扩展方法的声明和用法是否正确?
推荐答案
由于您在作为模块的文件中定义扩充,因此需要在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!");
}
}
这篇关于打印件中数字的扩展方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文