是否可以在TypeScript中定义string.Empty?

时间:2017-03-08 14:51:33

标签: typescript

我正在研究TypeScript和C#中的代码约定,我们已经计算出在C#中使用string.Empty代替""的规则。

C#示例:

doAction("");
doAction(string.Empty); // we chose to use this as a convention.

打字稿:

// only way to do it that I know of.
doAction("");

现在我的问题是,是否有办法在TypeScript中保持此规则的一致性,或者这种语言是否具体?

你们是否有指针如何在TypeScript中定义一个空字符串?

3 个答案:

答案 0 :(得分:5)

如果您真的想这样做,可以编写代码来执行此操作:

interface StringConstructor { 
    Empty: string;
}

String.Empty = "";

function test(x: string) {

}

test(String.Empty);

如您所见,传递String.Empty""只会有所不同。

答案 1 :(得分:2)

String类型,其定义位于lib.d.ts还有其他地方定义此库)。它提供了String上常用的类型成员定义,如fromCharCode。您可以使用empty在新引用的打字稿文件中扩展此类型。

<强> StringExtensions.ts

declare const String: StringExtensions;
interface StringExtensions extends StringConstructor {
    empty: '';
}
String.empty = '';

然后称之为

<强> otherFile.ts

doAction(String.Empty); // notice the capital S for String

答案 2 :(得分:1)

string.Empty特定于.NET(感谢 @Servy

没有其他方法可以创建一个空字符串而不是""

确实还有其他方法,比如new String()'',但你应该关心new String(),因为它不返回字符串原语,而是一个String对象,它在比较时是不同的(如此处所述:https://stackoverflow.com/a/9946836/6754146