百度网盘怎样做网站,Wordpress教程推荐,电子商务网站建设的意义是什么,拜年小程序制作ts编译选项
tsc app.ts -w
参数-w#xff0c;就是对app.ts进行监视#xff0c;每次该文件改变时就会自动编译
**:任意目录
*#xff1a;任意文件 接口
接口用来定义一个类结构#xff0c;用来定义一个类中应该包含哪些属性和方法#xff0c;同时接口也可以当做类型…ts编译选项
tsc app.ts -w
参数-w就是对app.ts进行监视每次该文件改变时就会自动编译
**:任意目录
*任意文件 接口
接口用来定义一个类结构用来定义一个类中应该包含哪些属性和方法同时接口也可以当做类型声明去使用。
interface MyInterface{
name:string
age:number
} 使用此接口const obj:MyInterface{
name:mez,
age:11}
注意接口是可以重复声明的。
interface MyInterface{
genderstring
}
这样两个同名接口存在的话等价于
interface MyInterface{
genderstring
name:string
age:number
}
接口可以再定义类的时候去限制类的结构,接口中的所有属性都不能有实际的值所以说接口只考虑对象的接口而不考虑其值在接口中所有的方法都是抽象方法。
interface myTest{
name:string;
sayHello():void;
}
定义类时可以使类去实现一个接口
class MyClass implements myTest{
name:string;
constructor(name:string){
this.namename;
}
sayHello(){
console.log(大家好~~)
}
}
interface和abstract是TS中独有的在编译后就看不到了。 属性的封装
(function(){
//定义一个表示人的类
class Person{
//可以用下划线的方式
//TS可以再属性钱添加属性的修饰符
//public:public修改的属性是可以任意修改的
//private私有属性只能再类内部进行修改
//通过再类中添加方法使得私有属性可以被外部访问
//protected受保护的属性只能在当前类和当前类中的子类中进行访问
private _gender:string;
name:string;
age:number;
constructor(name:string,age:number){
this.namename
this.ageage
}
//getter方法用来读取属性
//setter方法用来修改属性
//定义方法用来获取gender属性
getGender(){
return this._gender
}
//定义方法用来设置gender属性
setGender(value:string){
//判断gender是否合法
if(value男 || value女){this._gendervalue
}}
}
const per new Person(name:孙悟空,age:18)//现在属性是再对象中设置的可以任意的被修改
//比如
person.namemez;//但是会存在一个问题name和age都可以修改但是当存在不可控的数据时是非常危险的//TS中设置getter方法的方式
get gender(){
return this._gender
}
//这样的话就可以直接使用.gender即可set gender(value:string){
this._gendervalue
}
//可以直接执行
per.gender男//可以直接将属性定义在构造函数中
class C{
constructor(public name:string){}
}
//等价于
class C{
constructor(name:string){
this.namename
}
}
})()
泛型
//在不知道参数的类型时就可以使用泛型function fn(a: ??): ?? {
return a}//定义函数或类时遇到不明确的就可以使用泛型
function fnT(a:T):T{return a;
}//只有在函数执行的时候才能确定T的类型//可以直接调用具有泛型的函数
fn(a:10) //此时number赋值给了T //类型推断为numberfnstring(a:hello) //手动指定类型防止在不能自动推断出类型的情况function fn2T,K(a:T,b:K):T{
console.log(b);
return a}fn2number,string(a:123,b:hello)interface Inter{
length:number;
}
//T extends Inter 表示泛型T必须是Inter实现类
function fn3T extends Inter(a:T):number{return a.length;
}
fn3(123)//不正确
fn3(123)//正确class MyclassT{
name:T;
constructor(name:T){
this.namename
}}
const mcnew Myclassstring(name:aaa)