TypeScript 类型注释详解

在本教程中,你将学习 TypeScript 中的类型注释。

TypeScript 中的类型注释是什么

TypeScript 使用类型注释显式地为变量,函数和对象等标识符指定类型。TypeScript 中的类型注释语法是在标识符后面添加 : type 标识,其中 type 可以是任何有效的类型。一旦标识符被声明为某种类型,那它在使用的时候只能是那种类型,如果以其他类型来使用,TypeScript 编译器会抛出一个错误提示。

变量和常量中的类型注释

下面是给变量和常量指定类型注释的语法:

let variableName: type;
let variableName: type = value;
const constantName: type = value;

在这个语法中,类型注释跟在变量或者常量名之后,前面是一个冒号 (:)。

下面例子中的变量使用了 数字 类型注释:

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 变量添加数字类型注释的时候把它初始化为 1

下面是添加其他原始类型注释的例子:

let name: string = 'John';
let age: number = 25;
let active: boolean = true;

在这个例子中, 为 name 变量添加了 字符串 类型注释,为 age 变量添加了 数字 类型注释,为 active 变量添加了 布尔值 类型注释

类型注释例子

数组

数组类型 的变量添加类型注释,需要使用一个特定的类型:它的后面跟着一个方括号 : type[] 标识:

let arrayName: type[];

比如下面的例子声明了一个字符串数组:

let names: string[] = ['John', 'Jane', 'Peter', 'David', 'Mary'];

对象

为一个对象指定类型,使用对象类型注释,如下所示:

let person: {
  name: string;
  age: number;
};

person = {
  name: 'John',
  age: 25,
}; // 合法的

在这个例子中,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'.

小结

教程来源于Github,感谢cody1991大佬的无私奉献,致敬!

技术教程推荐

从0开始学游戏开发 -〔蔡能〕

零基础学Java -〔臧萌〕

网络编程实战 -〔盛延敏〕

JavaScript核心原理解析 -〔周爱民〕

Java业务开发常见错误100例 -〔朱晔〕

Go 并发编程实战课 -〔晁岳攀(鸟窝)〕

物联网开发实战 -〔郭朝斌〕

Dubbo源码剖析与实战 -〔何辉〕

结构思考力 · 透过结构看表达 -〔李忠秋〕