上一篇:
TypeScript之类,抽象类,继承,多态(四)
在前面创建数据类型我们简单提到了接口,使用接口在约束一组数据结构来定义指定的对象。这里来详细介绍一下TS中的接口。
在各种开发语言里基本都有interface接口的定义,这个接口与开发中的API接口不是一个概念。
interface接口定义了某一批类所需要遵守的规范,时一中数据格式的约束。接口不关心内部属性的数据,也不关心内部方法的实现细节,它只规定这批类里必须提供某些方法,提供这些方法的类就可以满足实际需要。
既然说了接口是一种规范,那么就可以用它来实现一种参数约定。定义一个接口,让函数接受这个参数,那么就相当于对这个参数进行了约定,只能传入满足这个接口约束的参数。下面来实现一下:
interface Info {
Name: string;
Age: number;
getInfo(info: Info) :void{
console.log(`姓名:${info.Name};年龄:${info.Age}`);
const params = {
Name: "狗蛋",
Age: 18,
hobby: "英雄联盟"
getInfo(params);
接口里属性还有可选属性,任意属性,只读属性等定义,在之前的接口定义对象中讲到过,这里就不再赘述了。
如果在接口中定义函数,那么有两种情况:
1.如果在接口中定义一个匿名函数,则这个接口就只能用来约束函数了。
interface Person{
(name: string, age: number): string;
let getInfo:Person = function(name:string , age:string){
console.log(`姓名:${name};年龄:${age}`);
2.如果在接口中定义的是非匿名函数,则是用来约束对象和类的。下面是约束对象的例子,约束类单独拿出来说。
interface Person{
name:string;
eat(food:string):string;
let obj:Person{
name : '狗蛋',
eat(food:string){
return `${this.name}吃${food}`
obj.eat("干饭")
至于为什么会出现这两种情况,想不明白的就给自己一巴掌再想。如果还是想不明白就再给自己一巴掌。
在上面Person这个接口中,也可以用来约束类,接口约束类和抽象类有点相似(有点区别是抽象类中的抽象方法不能有函数体)。接口来约束类这也是对接口的实现,实现接口使用implements关键字来定义。
interface Person{
name:string,
eat(food:string):string
class Student implements Person {
name: string;
constructor(name: string) {
this.name = name;
eat(food: string) {
console.log(this.name + "吃" + food);
let s = new Student("狗蛋")
s.eat("干饭")
接口继承就是说接口可以通过其他接口来扩展自己。使用extends来实现继承
Typescript 允许接口继承多个接口。
interface Person{
name:string,
age:number
interface Student extends Person{
rank:number
let s:Student = {
name:"学霸",
age:16,
rank:1
接口的多继承:一个接口可以同时继承多个接口,多个接口之间使用 , 隔开。比如这样:
interface Student extends Person,Child,Man{
rank:number
下一篇:TypeScript之泛型(六)
到底咯。。。。。。。。。。。。。。。。
TypeScript之接口的定义和使用一.接口的定义二.接口初识三.包含函数的接口四.接口对类的约束五.接口的继承上一篇:TypeScript之类,抽象类,继承,多态(四)在前面创建数据类型我们简单提到了接口,使用接口在约束一组数据结构来定义指定的对象。这里来详细介绍一下TS中的接口。一.接口的定义在各种开发语言里基本都有interface接口的定义,这个接口与开发中的API接口不是一个概念。interface接口定义了某一批类所需要遵守的规范,时一中数据格式的约束。接口不关心内部属性的数据,也不
-v ,--version output the version number
-h, --host [string] IP adress/Hostname for database server (default: " 127.0.0.1 " )
-p, --port [number] Port number for database server (default: 3306)
-d, --database < string> Database name
-u, --user [string] Username for database serve
https://blog.csdn.net/u012031958/article/details/106922480/
https://www.cnblogs.com/lemonyam/p/11215603.html
《TypeScript中文指南》
https://ts.xcatliu.com/introduction/get-typescript.html
1.什么是Typscript
TypeScript 是
TypeScript学习之路TypeScript学习之路安装typescript环境typescript起步
TypeScript学习之路
安装typescript环境
npm install -g typescript
tsc -v
typescript起步
1、新建hello.ts
const hello : string = "Hello World!"
console.log(hello)
2、通过 tsc 命令编译
tsc hello.ts
3、此时路径下会生成一个hello.
如题,本篇我们介绍下ts中函数型接口。
ts中函数型接口,非常类似于java、c#中使用lambda表达式传入匿名函数。因为对象中仅包含一个函数,这个对象的全部意义也仅在于那个可被外部调用的函数,故而称之为函数型接口。
05_interface_func.ts
* ts中接口
* 函数型接口 ,非常类似于java、c#中使用lambda表达式传入匿名函数
// ...
书写位置:在成员方法的位置中书写的类即使局部内部类。
局部内部类可以访问外部类的成员变量,包括私有成员。
在外部类访问局部位置,访问内部类的成员方法,则需要在外部类中创建内部类对象,进而对内部类对象来访问。
//定义一个外部类
class Outer{
public int num = 100 ;
private int num2 = 200 ;
//成员方法
public void method(){
2.这个方法不是抽象方法,带有native关键字,底层调用的是C++程序。
3.hashCode返回对象的哈希码值:
实际上就是一个java对象的内存地址,经过哈希算法,得出的一个值。
所以hashCode()方法的执行结果可以等同看做一个java对象的内存地址。