如何在打字稿中扩展字符串?

Posted

技术标签:

【中文标题】如何在打字稿中扩展字符串?【英文标题】:how to make an extension of string in typescript? 【发布时间】:2021-06-18 17:46:22 【问题描述】:

我需要将我自己的方法添加到打字稿中的字符串中。所以希望我能做这样的事情

const myPoint : string = "23";
const customNumber = myPoint.convertUsingMyCustomImplementation();

我试试这个(使用大写的 S):

// eslint-disable-next-line no-extend-native
String.prototype.convertUsingMyCustomImplementation = function() : number 
  return parseFloat(this);
;

但我有两个错误

类型上不存在属性“convertUsingMyCustomImplementation” '字符串'。

“字符串”类型的参数不能分配给类型参数 '细绳'。 'string' 是一个原始的,但 'String' 是一个包装对象。 尽可能使用“字符串”。

我也试试下面的代码:

// eslint-disable-next-line no-extend-native
string.prototype.convertUsingMyCustomImplementation = function() : number 
  return parseFloat(this);
;

但我也有错误

如何使用 Typescript 来实现?

【问题讨论】:

当您使用 String.prototypeString: this 时发生了什么?你试过了吗? (我不使用打字稿) 这能回答你的问题吗? How to extend String Prototype and use it next, in Typescript? 【参考方案1】:

您的原型方法很好。您只需声明该字符串将具有此方法。通常您在 .d.ts 文件中执行此操作以使其可以在任何地方工作,但您可以在紧要关头在常规 ts 文件中执行此操作。

declare global  
    interface String  
        convertUsingMyCustomImplementation(): number;
     

【讨论】:

以上是关于如何在打字稿中扩展字符串?的主要内容,如果未能解决你的问题,请参考以下文章

在打字稿中,如何检查字符串是不是为数字

在打字稿中,如何检查字符串是不是为数字

在打字稿中,如何检查字符串是不是为数字

如何在打字稿中解码二进制数据字符串

如何在打字稿中使用/显示带有html标签的字符串

如何在打字稿中使用可能的字符串和数字索引确定对象的类型?