我想将扩展方法format()添加到String.所以我的期望是我可以在我的项目中的任何地方使用String.format.
我遵循了 topic的准则,但这没有用.我收到了这个错误:
我遵循了 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[]) { ... }