用于向String或Number添加方法的ionic2 typescript编译错误

时间:2016-05-18 09:05:12

标签: typescript compiler-errors ionic2

在我的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编译它,我没有错误。所有代码都在一个文件中。

1 个答案:

答案 0 :(得分:0)

Angular处理ts编译,您可以编辑应用程序根目录中的文件tsconfig.json中的typescript编译器选项。但我不认为你想搞砸。

尝试使用非静态方式扩展您可以在此处找到的功能:https://stackoverflow.com/a/13897813/1016128