1.泛型(generic)
参数化的类型,一般用来限制集合的内容
class Person {
constructor(private name: string) {
}
work() {
}
}
var worker: Array<Person> = [];//这里指定数组中只能放Person类创建的对象
worker[0] = new Person("zhang san");
2.接口interface
用来建立某种代码约定,使得其他开发者在调用某个方法或者创建新的类时必须遵循接口所定义的代码约定。
(一)//接口声明属性,
interface IPerson {
name: string;
age: number;
}
//接口当做参数
class Person {
constructor(public config:IPerson) {
}
}
//在实例化一个类的时候,必须传入参数
var p1 = new Person({
name: "zhang san",
age: 18
})
(二)接口声明方法
//接口声明属性,
interface Animal {
eat();
}
//实现接口关键字implements
class Sheep implements Animal {
eat() { //必须实现
}
}
(三)模块(Module)
模块可以帮助开发者将代码分割为可重用的单元。开发者可以自己决定将模块中的那些资源(类、方法、变量)暴露出去供外部使用,哪些资源只在模块内使用。一般一个模块就是一个文件
模块主要是两个关键字 exprot (导出) import(导入)
文件 a.ts
export function fun1 () {
console.log("输出");
}
在文件 b.ts中引用
import { fun1} from ".a";
fun1();//调用