在 TypeScript 中检查一个变量是否是一个字符串
- TypeScript 类型
-
在 TypeScript 中使用
typeof
运算符检查变量是否为字符串 -
在 TypeScript 中使用
instanceof
运算符检查变量是否为字符串 -
在 TypeScript 中使用
Object.prototype
检查变量是否为字符串
本文将讨论在 TypeScript 中检查变量是否为字符串。
TypeScript 类型
TypeScript 是 JavaScript 语言的超集,类型检查在编译时进行。每当声明变量、函数或参数时,TypeScript 允许我们显式分配类型,这有助于提前识别错误。
// variable declaration and assignment
let stringTypeVariable: string = 'Hello world';
let booleanTypeVariable: boolean = true;
let numberTypeVariable: number = 10;
// function declaration
function calculateSum(numOne: number, numTwo: number): number {
return numOne + numTwo;
}
TypeScript 中的 string
类型
TypeScript 字符串类型包含一组字符。它是一种原始数据类型,其中一个字符序列包含在单引号或双引号之间。
文本数据可以存储在字符串类型中。有两种方法可以在 TypeScript 中存储字符串:
- 存储为原始类型
- 存储为对象实例
将字符串存储为原始类型
通常,原始字符串类型包含字符串文字。建议使用原始字符串而不是对象实例。
let stringTypeName: string = 'John Doe';
let stringTypeId: string = "User001";
将字符串存储为对象实例
TypeScript 支持 String 对象实例,它使用附加的辅助方法包装原始字符串类型。String 对象实例将在其原型链中具有 String.prototype
。
let stringVal: String = new String('This is a String object');
let anotherStrVal: String = String('Another String object');
有几种方法可以检查给定变量是否包含字符串。通常,typeof
运算符用于检查原始字符串类型,instanceof
运算符可用于字符串对象实例。
除此之外,Object.prototype
属性可用于检查给定类型是否为字符串。
在 TypeScript 中使用 typeof
运算符检查变量是否为字符串
typeof
是一个 TypeScript 一元运算符,它返回指定操作数的数据类型。
语法:
typeof <operand>
运算符返回一个表示操作数类型的字符串。
让我们创建一个原始字符串 userName
。
let userName: string = 'Ricky hardy';
接下来,我们将使用 typeof
运算符来检查 userName
变量的数据类型。让我们将它打印到控制台,如下所示:
console.log(typeof userName);
输出:
string
因此,typeof
运算符可用于检查条件代码片段中的原始类型字符串,如下所示:
if (typeof userName === 'string') {
// logic to be executed when the type is a string
} else {
// logic to be executed for non-string types
}
在 TypeScript 中使用 instanceof
运算符检查变量是否为字符串
instanceof
运算符对给定对象的原型链进行操作,并检查原型属性是否出现在那里。它检查指定对象是子对象还是给定构造函数的实例。
语法:
<object> instanceof <constructor/type>
该运算符返回一个布尔值。此外,运算符只接受对象实例,而不接受原语。
让我们实例化一个新的字符串对象 vehicleBrand
。
let vehicleBrand: String = new String("AUDI");
接下来,我们将使用 instanceof
运算符来检查 vehicleBrand
是否为字符串类型。
console.log(vehicleBrand instanceof String);
输出:
true
正如预期的那样,运算符返回 true
,因为 vehicleBrand
是一个字符串对象。
在 TypeScript 中使用 Object.prototype
检查变量是否为字符串
Object.prototype
也可以用作在 TypeScript 中识别字符串类型的更通用的方法。该属性包含 toString()
方法,我们可以在其中使用 call
方法并检查指定变量原型的类型。
语法:
Object.prototype.toString.call(<variable/object>);
这应该返回以下格式的字符串:
"[object String]"
OR
"[object Array]"
OR
.
.
.
让我们创建一个新变量 newStringValue
。
let newStringValue: string = 'This is a new string';
接下来,我们将使用 Object.prototype
属性检查 newStringValue
变量构造函数类型。
console.log(Object.prototype.toString.call(newStringValue));
输出:
[object String]
正如预期的那样,类型是字符串。
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.