在 TypeScript 中檢查一個變數是否是一個字串

Migel Hewage Nimesha 2023年1月30日
  1. TypeScript 型別
  2. 在 TypeScript 中使用 typeof 運算子檢查變數是否為字串
  3. 在 TypeScript 中使用 instanceof 運算子檢查變數是否為字串
  4. 在 TypeScript 中使用 Object.prototype 檢查變數是否為字串
在 TypeScript 中檢查一個變數是否是一個字串

本文將討論在 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 中儲存字串:

  1. 儲存為原始型別
  2. 儲存為物件例項

將字串儲存為原始型別

通常,原始字串型別包含字串文字。建議使用原始字串而不是物件例項。

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]

正如預期的那樣,型別是字串。

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

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.

相關文章 - TypeScript String