ts接口的作用,接口的使用在开发中带来的良好体验。

1,747 阅读3分钟

1、ts接口的作用:

typescript接口的作用是什么?

首先来看一个例子:

在JavaScript中定义一个可用于获取用户姓名和年龄字符串的函数:

const getUserInfo = function(user) {  return `name: ${user.name}, age: ${user.age}`}

正确的调用方式如下所示:

getUserInfo({name: "coderwhy", age: 18})

但是当项目比较大或者多人开发时,则可能会出现如下错误的调用方法:

// 错误的调用getUserInfo() // Uncaught TypeError: Cannot read property 'name' of undefinedconsole.log(getUserInfo({name: "coderwhy"})) // name: coderwhy, age: undefinedgetUserInfo({name: "codewhy", height: 1.88}) // name: coderwhy, age: undefined

而且我们知道JavaScript是弱类型的语言,它不会对传入的代码进行检测,这样不仅不规范不易于维护与扩展,而且会存在各种类似的安全隐患问题。

而typescript为了避免上述问题,而使用了接口:

如上诉函数方法使用接口可进行如下重构:

先定义一个IUser接口:

// 先定义一个接口interface IUser {  name: string;  age: number;}

具体的函数:

const getUserInfo = (user: IUser): string => {  return `name: ${user.name}, age: ${user.age}`;};// 正确的调用getUserInfo({name: "coderwhy", age: 18});

通常情况下定义了一个接口,然后是在继承这个接口的类中继续写该接口的具体实现方法,我们不禁会疑惑:为何不直接就在这个类中写实现方法,从而也不用再去定义接口?当我们心存这个疑惑的时候,我们就需要好好地去理解接口地意义所在了。

接口的具体意义在于:

(1)接口的类描述了一个实体,包括实体的状态,也包括实体可能发出的动作;

(2)接口定义了一个实体可能发出的动作,但要注意的是只是定义这些动作的原型没有实现也没有任何状态信息。

(3)接口像是一个规范/协议,它规定了类中需提供的属性和方法,是一个抽象的概念;而则是实现了这个协议,满足了这个规范的具体实体,是一个具体的概念。

(4)从程序角度理解:接口为函数声明,类为函数实现,要注意的是同一个声明可能有很多种实现。

2、在开发中使用接口的意义:

1、简单、规范性:

      在代码设计中,接口是一种规范,如果一个项目比较庞大,接口的使用不仅可以告诉开发人员相关的业务需求,而且也限制了命名规范。

2、维护、拓展性

      接口将相关规范和具体的属性和实现方法分离开来了,当实现方法发生变更时,即使多处使用了该接口,这些地方也无需改动,只需修改具体的实现方法即可,这样就达到了系统维护、拓展的方便性。

3、安全、严密性:接口是实现解耦的一个重要手段,它描述了系统对外的所有服务而不涉及具体的实现细节,这样也会比较安全与严密。