Angular2和Typescript:如何添加字符串扩展方法/原型
发布时间:2020-12-17 07:23:04 所属栏目:安全 来源:网络整理
导读:我想将扩展方法format()添加到String.所以我的期望是我可以在我的项目中的任何地方使用String.format. 我遵循了 topic的准则,但这没有用.我收到了这个错误: 谁能帮我? 提前致谢. p.s:我想像我在angular 1.xx中那样添加扩展方法 编辑 使用declare global不
我想将扩展方法format()添加到String.所以我的期望是我可以在我的项目中的任何地方使用String.format.
我遵循了 topic的准则,但这没有用.我收到了这个错误: 谁能帮我? 提前致谢. p.s:我想像我在angular 1.xx中那样添加扩展方法 编辑 使用declare global不会出错. declare global { interface String { format(): string; }} String.prototype.format = function () :string { var result = arguments[0]; for (var i = 0; i < arguments.length - 1; i++) { var reg = new RegExp("{" + i + "}","gm"); result = result.replace(reg,arguments[i + 1]); } return result;} 我们如何使用String.format(‘< img alt =“{0}”title =“{0}”src =“{1}”/>‘,name,id);
基于
this playground它工作得很好.
它可能不适合你,因为你可能正在使用模块(导入/导出),在这种情况下你需要在global augmentation中这样做: declare global { interface String { foo(): number; } } 然后在向原型添加foo时不会出错. 编辑 好像你想在String上使用静态函数,所以你需要这样做: declare global { interface StringConstructor { format(): string; } } String.format = function (...args: string[]) { ... } 我还在签名中添加了… args:string [],告诉编译器函数需要任意数量的字符串作为参数. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |