来自Javascript,我需要一些有关如何在Typescript中进行字符串验证的建议。
通常,在Javascript中,您仅可以检查字符串,就好像它是布尔值一样,但是如果使用强类型,则会出现编译器错误。
我想到了几个解决方案,但我不太喜欢您可以做!! myString或更改返回类型。是检查空,未定义和空字符串的方法吗?
查看示例:
function stringIsValid(myString: String) : Boolean {
return myString; // compiler error
}
var isValid = stringIsValid(null);
答案 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';
}