首页 > 代码库 > TypeScript学习指南第二章--接口

TypeScript学习指南第二章--接口

接口

TypeScript的核心机制之一在于它的类型检查系统(type-checker)只关注一个变量的"模型(shape)",这种机制我们常成为鸭子类型(duck typing),是动态类型的一种风格.在TypeScript中接口充当着命名这些类型的职责,同时也是一种强大的方式与你的代码内部或外部项目之间定义契约.

定义第一个接口

我们通过一个简单的例子来理解在TypeScript中如何工作的:

 

function printLabel(labelledObj: {label: string}) {  console.log(labelledObj.label);}var myObj = {size: 10, label: "Size 10 Object"};printLabel(myObj);

 

在调用printLable的地方类型检查系统这个函数,它要求传入一个对象并且这个对象中有一个命名为label的属性并且被定义为字符串类型(string). 需要特别强调的是,在上面的代码中,我们传入的对象实际上并不是只有label这一个属性,但是在编译的时候TypeScript的类型检查系统只去检查传入的对象是否包含约定好的属性,并且属性的数据类型正确与否.

我们把上面的例子改写一下,这次我们使用接口来约束函数printLabel所传入的参数,接口中定义一个字符串类型命名为label的属性.

interface LabelledValue {  label: string;}function printLabel(labelledObj: LabelledValue) {  console.log(labelledObj.label);}var myObj = {size: 10, label: "Size 10 Object"};printLabel(myObj);

 

TypeScript学习指南第二章--接口