TypeScript | 青训营笔记

99 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天

什么是TypeScript?

TypeScript是微软开发的开源的编程语言。TypeScript具有类型系统,是JavaScript的超集。它可以编译成普通的JavaScript代码。提供了更丰富的语法提示并且可以在编译阶段就能检查错误。

interface接口

TypeScript的核心原则之一是对值所具有的结构进行类型检查。 它有时被称做“鸭式辨型法”或“结构性子类型化”。 在TypeScript里,接口的作用就是为这些类型命名和为你的代码或第三方代码定义契约。

这是TypeScript中文文档对tyepscript接口的介绍。

这里定义了函数printLabel的一个参数labelledObj,这个对象参数有一个属性名为label且类型为string

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

如果用接口来描述,LabelledValue是接口的名字,LabelledValue对象有一个label属性且类型为string。而只要传入的参数满足这个接口的必要条件就可以。

interface LabelledValue {
  label: string;
}

function printLabel(labelledObj: LabelledValue) {
  console.log(labelledObj.label);
}

let myObj = {size: 10, label: "Size 10 Object"};
printLabel(myObj);

接口里的属性不全都是必需的。 有些是只在某些条件下存在,或者根本不存在。在ts中带有可选属性的接口与普通的接口定义差不多,只是在可选属性名字定义的后面加一个?符号。可选属性的好处在于可以可能存在的属性进行预定义。

除了可选属性,还有只读属性。当你在属性名前用readonly来指定只读属性时,只要你第一次赋值过后,就不能再修改它的值了。它就像const带来的作用一样,但是如果是属性的话就使用readonly,如果是变量的话则使用const

今天学习的课程还提到泛型和高级类型等知识。还需要继续学习。