Я прочитал, что можно добавить методы расширения к типам в 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?