类型别名
下面的代码将string类型赋值给一个别名,以后如果出现别名的地方,就好比出现类型string,同理其他类型也一样
type Name=string
let gender:Name='男'
接口
接口定义一些规范,实现该接口必须要实现该接口定义的规范
一个class可以实现多个接口,但是一个class只能继承一个类
interface INamed{
name:string
// 注意没有方法体,在具体的对象中实现方法体
print():void
}
const sayName=(o:INamed)=>{
o.print()
}
const person={
age:27,
name:'jack',
print:function(){
console.log(this.name)
}
}
sayName(person)
一个类可以实现一个或者多个接口,前提是必须实现接口中的每一个属性和方法,但是类中也可以有自己的属性和方法
interface Person{
name:string
greeting():void
}
// 类实现接口,一个接口可以供多个类实现
class Employee implements Person{
name:string='Jack';
greeting():void {
console.log('我是一个employee')
};
}
let em:Employee=new Employee()
em.greeting()
可选属性:
表示一个属性或者方法是可有可无,在属性名后面加个?
interface Person{
first_name:string
last_name?:string
print?():void
}
let p={
first_name:'Tome',
last_name:'Jack'
}
const sayName=(o:Person)=>{
console.log(o.first_name)
}
sayName(p)
tip:
- 在使用ts过程中,推荐一款工具,可以在编译ts之后,自动执行编译出来的js文件,ts-node
- 在使用node的环境中,比如运行一个编译好的js文件,通常通过node index.js,这时特别推荐nodemon,他会监听文件的修改,只要文件有所修改,就会自动重启服务器,相当于我们使用的热更新