在我的Ionic2项目中,我正在尝试向Number中添加一个新方法,如下面的代码所示。
interface StringConstructor {
bar(msg: string): void;
}
String.bar = function(msg: string) {
alert("Example of static extension: " + msg);
}
String.bar("Hello World");
interface NumberConstructor {
toRad(): number;
}
Number.toRad = function() { return this * (Math.PI / 180); };
export function gpsDist() {
}
当我进行离子构建时,它会给我以下错误:
TypeScript错误: /Users/cju/Projects/Bus2-App/app/util/mathUtil.ts(7,8):错误TS2339: “StringConstructor”类型中不存在属性“bar”。
TypeScript错误:/Users/cju/Projects/Bus2-App/app/util/mathUtil.ts(11,8):错误 TS2339:'StringConstructor'类型中不存在属性'bar'。
TypeScript错误: /Users/cju/Projects/Bus2-App/app/util/mathUtil.ts(18,8):错误TS2339: 'NumberConstructor'类型中不存在属性'toRad'。
然而,同样的文件在离子外编译好。如果我用tsc编译它,我没有错误。所有代码都在一个文件中。
答案 0 :(得分:0)
Angular处理ts编译,您可以编辑应用程序根目录中的文件tsconfig.json
中的typescript编译器选项。但我不认为你想搞砸。
尝试使用非静态方式扩展您可以在此处找到的功能:https://stackoverflow.com/a/13897813/1016128