Javascript 正在尝试将已存在的方法添加到TypeScript中的字符串

Javascript 正在尝试将已存在的方法添加到TypeScript中的字符串,javascript,typescript,Javascript,Typescript,我正在尝试将“startsWith”方法添加到字符串原型中。但是TypeScript编译器给出了一个错误,因为它认为它已经存在。把它命名为别的东西会很难看。我应该如何正确地实施它 interface String { startsWith(str: string): boolean; } if (!String.prototype.startsWith) { String.prototype.startsWith = function (str: string) : boolea

我正在尝试将“startsWith”方法添加到字符串原型中。但是TypeScript编译器给出了一个错误,因为它认为它已经存在。把它命名为别的东西会很难看。我应该如何正确地实施它

interface String
{
   startsWith(str: string): boolean;
}


if (!String.prototype.startsWith)
{
   String.prototype.startsWith = function (str: string) : boolean
   {
      return this.indexOf(str) == 0;
   };
}
生成的错误:
构建:无法将“(str:string)=>boolean”转换为“{(find:string,pos?:number,case?:boolean);(find:string,case?:boolean):boolean;(find:RegExp,pos?:number,case?:boolean);(find:RegExp,case?:boolean);(str:string):boolean;}

这段代码在VS和中都适用。你能提供更多的信息来重现那个错误吗?哎哟!现在我觉得有点傻。。。冲突的定义来自Sugar.js,因为我导入了Sugar.d.ts,并且在代码中仍然有一个较旧的“startsWith”实现。很抱歉占用您的时间,但您让我发现了错误。=)很好,总是很乐意帮忙。是的startsWith不是ecma标准,所以除非其他lib/def有冲突,否则不应该发生冲突:)@AdrianRosca你应该删除这个问题