ts概念讲解
前言
在面向对象语言中,接口是一个很重要的概念,它是对行为的抽象,而具体如何行动需要由类去实现。TypeScript 中的接口是一个非常灵活的概念,除了可用于 对类的一部分行为进行抽象 以外,也常用于对「对象的形状(Shape)」进行描述。TypeScript 的核心原则之一是对值所具有的结构进行类型检查,并且只要两个对象的结构一致,属性和方法的类型一致,则它们的类型就是一致的。 在TypeScript里,接口的作用就是为这些类型命名和为代码或第三方代码定义契约。简单点说,在 TypeScript中,接口是一个很重要的特性,它让 TypeScript 具备了 JavaScript 所缺少的、描述较为复杂数据结构的能力。## 引入主题> 其实在 JavaScript 日常开发中,很多时候都需要接口来 “规范” 程序。假设在 JavaScript 中定义一个函数,用来获取一个用户的姓名和年龄的字符串:
javascriptfunction getUserInfo(user) { return `name: ${user.name}, age: ${user.age}`}
函数调用:javascriptgetUserInfo({name: "koala", age: 18})
您可能会问,我们写 JavaScript 的时候,这个再正常不过了吧?但请注意,如果这个getUserInfo()
在多人开发过程中,如果它是个公共函数(多个开发者都会调用),如果不是每个人点进来看函数对应注释,可能会出现以下错误的调用:javascript// 1: 直接调用,不知道还需要传参数getUserInfo() // Uncaught TypeError: Cannot read property 'name' of undefined// 2: 只传递一个参数,不知道还有其他参数console.log(getUserInfo({name: "王佳斌"})) // name: 王佳斌, age: undefined// 3: 参数知道传递多少个,但不知键名getUserInfo({name: "王佳斌", width: 560}) // name: 王佳斌, age: undefined// ...
由于 JavaScript 是弱类型的语言,所以 并不会对我们传入的代码进行任何的检测,😦 有些错你自己都说不清楚,但是就出了问题。****