Typescript中的字符串验证

时间:2019-01-24 09:22:11

标签: typescript

来自Javascript,我需要一些有关如何在Typescript中进行字符串验证的建议。

通常,在Javascript中,您仅可以检查字符串,就好像它是布尔值一样,但是如果使用强类型,则会出现编译器错误。

我想到了几个解决方案,但我不太喜欢您可以做!! myString或更改返回类型。是检查空,未定义和空字符串的方法吗?

查看示例:

function stringIsValid(myString: String) : Boolean {
    return myString; // compiler error
}

var isValid = stringIsValid(null);

Playground

2 个答案:

答案 0 :(得分:2)

您可能只想使用其中之一,功能上它们是相同的:

function stringIsValid(myString: String): Boolean {
    return Boolean(myString);
}

function stringIsValid(myString: String): Boolean {
    return !!myString;
}

答案 1 :(得分:1)

TS中的类型将无法帮助您对变量进行运行时类型验证,因为TS仅在编译时起作用。 JS中有一个方便的typeof命令可以进行类型验证:

typeof myString === 'string'

您编写的函数

function stringIsValid(myString: string) : boolean {
    return myString;
}

会在编译(编译时)时给您TS错误,但是当您实际运行程序时,这些类型无效。这是一个如何使用正确的键入和正确的运行时检查来编写它的示例:

function stringIsValid(myString: string) : boolean {
    return typeof myString === 'string';
}