注意: 如果您是 TypeScript 新手,请先查看我们的 TypeScript 入门 教程。
TypeScript 变量
TypeScript 变量是用于存储数据的容器。例如,
let age: number = 20;
这里,age 是一个 number
类型的变量,即它只能存储数值。目前,它存储着数字 20。
TypeScript 变量与 JavaScript 变量
在 JavaScript 中,您无需声明类型。因此,您可以将一种类型的数据赋给另一种类型的变量。
但在 TypeScript 中,这是不允许的。例如,
// TypeScript Code
// Declare a number variable
let age: number = 20;
// Assign a string data to age variable
// Error: this is an invalid code
age = "Twenty";
在这里,我们尝试将字符串值 "Twenty"
赋给一个名为 age 的数字变量。不出所料,这会返回一个错误。
然而,在 JavaScript 中您可以轻松地执行此操作
// JavaScript Code
// Declare variable without type
// Assign a number to it
let age = 20;
// Assign a string data to age variable
// This is a valid code
age = "Twenty";
在 TypeScript 中声明变量
在 TypeScript 中,我们使用 var
或 let
关键字以及数据类型来声明变量。例如,
var age: number;
let name: string;
这里,
- age - 一个
number
类型的变量。它只能存储数值。 - name - 一个
string
类型的变量。它只能存储文本值。
因此,在 TypeScript 中创建变量的通用语法是
let variableName: dataType;
注意: 就像 JavaScript 一样,我们 不建议使用 var 关键字 在 TypeScript 中创建变量。
在 TypeScript 中初始化变量
我们使用赋值运算符 =
给变量赋值。
// Declare variable age of number type
let age: number;
// Assign 20 to age
age = 20;
这里,将 20 赋给了变量 age。
您也可以在声明变量时对其进行初始化。
// Declare variable johnAge and assign 20 to it
let johnAge: number = 20;
// Declare variable janeAge and assign 42 to it
let janeAge: number = 42;
变量初始化进阶
在 TypeScript 中,可以在一条语句中声明多个变量。
// Declare string variable userName and number variable age
// Assign values "John" and 20 respectively
let userName:string = "John", age:number = 20;
在这里,我们在同一行中声明并赋值了两个变量,其中,
- name 是
"John"
。 - age 是 20。
如果您在未初始化的情况下使用变量,它将具有 undefined
值。
// Declare a number variable called age
let age: number;
// Print age
console.log(age);
// Output: undefined
在这里,我们声明了一个名为 age 的变量。但是,由于它不包含任何值,因此其值为 undefined
。
要了解有关 undefined
的更多信息,请访问 TypeScript null 和 undefined。
更改变量的值
变量的值可能会变化。因此,它的名称是变量。
让我们看下面的例子,了解如何更改变量的值
// Assign 5 to variable age
let age: number = 20;
console.log(age); // 20
// Change the value of age to 33
age = 33;
console.log(age); // 33
在这里,当我们给 age 变量赋新值时,它的值从 20 变为了 33。
TypeScript 变量命名规则
1. 变量名必须以字母、下划线 _
或美元符号 $
开头。
// Valid
let age: number = 20;
let _age: number = 20;
let $age: number = 20;
2. 变量名不能以数字开头。
// Invalid
let 20age: number = 20; // This gives an error
3. 变量名区分大小写。所以 age 和 Age 是不同的变量。
let age: number = 20;
let Age: number = 33;
console.log(age); // 20
console.log(Age); // 33
4. 变量名不能是关键字(TypeScript 中为特定目的保留的特殊单词,例如 if
, else
, let
, var
等)。
// Invalid
let new: number = 20; // Error! new is a keyword
TypeScript 中变量命名的推荐方式
您可以随意命名变量。但是,我们建议使用以下命名约定
- 在 TypeScript 中,当变量包含多个单词时,通常以 驼峰命名法(camelCase)命名。
例如,firstName, annualSalary, numberOfBooks 等。
- 给变量起一个描述性名称是个好习惯。
例如,如果您使用一个变量来存储苹果的数量,最好将该变量命名为 apples 或 numberOfApples,而不是 x 或 n。
TypeScript 常量
常量是一种变量,其值无法更改。
在 TypeScript 中,我们使用 const
关键字来创建常量。例如,
// Assign 20 to AGE
const AGE: number = 20;
常量一旦初始化,我们就不能更改其值。
// Assign 20 to age
const age: number = 20;
// Assign 10 to age
age = 10;
console.log(age); // Error! constant cannot be changed
始终在声明时初始化常量
如果在声明时未初始化常量,则会引发错误。例如,
// Error! Missing initializer in const declaration
const age: number;
// Attempt to initialize constant after declaration
age = 20;
console.log(age);
注意: 如果您确定变量的值在整个程序中都不会改变,我们建议您使用 const
。
但是,有些浏览器不支持 const
。访问 JavaScript const 浏览器支持 以了解更多信息。