【发布时间】:2020-02-14 18:37:18
【问题描述】:
我已经读到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 扩展方法的声明和使用是否正确?
【问题讨论】:
-
这能回答你的问题吗? stackoverflow.com/questions/58265985/…(基本上就是把接口扩展放在
*.d.ts文件的某个地方)
标签: typescript extension-methods