ionic2 typescript 编译错误,用于将方法添加到字符串或数字
Posted
技术标签:
【中文标题】ionic2 typescript 编译错误,用于将方法添加到字符串或数字【英文标题】:ionic2 typescript compilation error for adding a method to String or Number 【发布时间】:2016-09-14 15:56:27 【问题描述】:在我的 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”。
但是,相同的文件在 ionic 之外编译正常。如果我用 tsc 编译它,我不会收到任何错误。所有代码都在一个文件中。
【问题讨论】:
我尝试通过执行“node tsc.js myfile.ts”和“node typescript.js myfile.ts”在“ionic build”命令之外编译文件,两者都编译没有错误。 tsc.js 和 typescript.js 来自 ionic-gulp-browserify-typescript/node_modules/tsify/node_modules/typescript/lib。 【参考方案1】:Angular 负责 ts 编译,您可以在应用程序根目录中的文件 tsconfig.json
中编辑 typescript 编译器选项。但我不认为你想搞砸这个。
尝试使用非静态方式扩展功能,您可以在此处找到:https://***.com/a/13897813/1016128
【讨论】:
我这样做了。接口编号 toRad(): 编号; Number.prototype.toRad = function() return this * 2; ;它仍然给我错误“错误 TS2339:‘数字’类型上不存在属性‘toRad’。”但它仍然运行并给了我正确的结果。以上是关于ionic2 typescript 编译错误,用于将方法添加到字符串或数字的主要内容,如果未能解决你的问题,请参考以下文章
Ionic2 Angular2 Typescript 模块 - 类型提示问题
更新到 ionic-native 2.5.1 后的 ionic 2 Typescript 错误 TS1005
typescript 解决方案“错误:gulp-typescript:项目不能同时用于两个编译*。使用createP创建多个项目
typescript AngularJS2 / Ionic2:与imgcache.js一起使用的ImageCache指令