理解 TypeScript 中的类型注释
摘要: 在本教程中,你将了解 TypeScript 中的类型注释。
什么是 TypeScript 中的类型注释
TypeScript 使用类型批注来显式指定标识符的类型,如变量、函数、对象等。
TypeScript 在标识符后使用语法 :type
作为类型注释,其中 type
可以是任何有效的类型。
一旦一个标识符被标注了类型,它就只能作为该类型使用。如果它被用作另一种类型,TypeScript 编译器会触发错误。
在变量和常量中使用类型注释
以下语法显示了如何为变量和常量指定类型注释:
let variableName: type;
let variableName: type = value;
const constantName: type = value;
在此语法中,类型注释位于变量或常量名称之后,前面有一个冒号(:
)。
以下示例对一个变量使用了 number
注释:
let counter: number;
此后,你只能为 counter
变量赋值一个数字:
counter = 1;
如果你给 counter
变量赋值一个字符串,会得到一个错误信息:
let counter: number;
counter = 'Hello'; // compile error
报错:
Type '"Hello"' is not assignable to type 'number'.
你可以在一条语句中同时为一个变量指定类型和初始化赋值,如下所示:
let counter: number = 1;
在这个例子中,我们对 counter
变量使用了 number
注释,并将其初始化为 1
。
下面显示了基本类型注释的其他示例:
let name: string = 'John';
let age: number = 25;
let active: boolean = true;
在本例中,name
变量获得 string
类型,age
变量获得 number
类型,active
变量获得 boolean
类型。
类型注释示例
数组
若要注释你使用的数组类型,请使用某个类型然后加上一对方括号: type[]
:
let arrayName: type[];
例如,下面声明了一个字符串数组:
let names: string[] = ['John', 'Jane', 'Peter', 'David', 'Mary'];
对象
要指定对象的类型,可以使用对象类型注释。例如:
let person: {
name: string;
age: number
};
person = {
name: 'John',
age: 25
}; // valid
在本例中,person
对象只接受两个属性: string
类型的 name
和 number
类型的 age
。
函数参数和返回值的类型
下面显示了带有参数类型注释和返回类型注释的函数注释:
let greeting : (name: string) => string;
在此示例中,你可以将任何接受字符串并返回字符串的函数分配给 greeting
变量:
greeting = function (name: string) {
return `Hi ${name}`;
};
由于赋给 greeting
变量的函数与其函数类型不匹配,下面的代码会触发一个错误。
greeting = function () {
console.log('Hello');
};
错误:
Type '() => void' is not assignable to type '(name: string) => string'. Type 'void' is not assignable to type 'string'.
摘要
- 使用类型注释语法
: [type]
来显式指定变量、函数、函数返回值等的类型。