Interface,接口 .. 接口就像是一种合同,使用了某个接口就要遵守这个接口定义的合同 .. 其实接口定义的就是对象的形状,比如说明一下对象里面应该有什么样的属性,属性的类型是什么,有什么样的行为等等 ..
在 TypeScript 里面,用接口可以定义新的类型 .. 假设我们的应用里有一种文章数据 .. 我们可以使用 Post 来表示 .. 先定义一个接口 .. 用的是 interface 这个关键词 .. 接口的名字是 Post .. 表示文章 .. 里面是这个接口里的一些数据属性还有行为 .. 文章数据应该有一个 title 属性 .. 对应的值是 string,还需要一个 content .. 对应的值也是 string ..
下面定义一个变量 .. 名字是 post .. 可以设置一下它的类型,使用一下 Post 这种类型,就是上面定义的这个 Post 接口 .. 这样这个 post 里面就必须有一个 string 类型的 title 属性,还需要一个 string 类型的 content 属性 ..
先添加一个 title .. 它的值是个字符串 .. 现在,TypeScript 会提示我们,说这个 post 里面少了一个 content 属性 .. 在这个 post 里面可以再添加一个 content 属性 ..
这样警告就会消失 ...
或者也可以在 Post 这个接口上,把 content 属性标记成一个可选的属性 ..
可选属性的名字的后面可以添加一个 ? 号 .. 这样即使在 post 这个对象里面没有 content 属性,也不会出现警告 ..
再打开编译之后的这个 js 文件看一下 ... 你会发现里面并没有 interface 相关的代码 .. 这个是因为 TypeScript 编译器再把 TypeScript 代码编译成 JavaScript 的时候,会去掉里面定义的所有的 Interface ..
也就是接口只是一种辅助我们编写代码的工具 .. 代码真正运行的时候就不需要它们了 ..