// ————————————数据类型 ——————————————————
let a:string='adsaf'
console.log(a)
let v
v=2
console.log(v) //2
let arr=[1,2,3]
const result = arr.find(item=>item>2) as number
// ———————————— 类型推断——————————————————\
console.log(result)//3
console.log(result*5)//15
let v3:boolean=true
let v4:number = 5
let v6 :string|number|boolean='西门飞雪'
console.log(v6)//西门飞雪
let v7 :1|2|4|5=5
// ————————————数组 ——————————————————
let aarr=[3,4,4,4,4]
let arrrr :number[]=[3,3,3]
let sss: string[]=[a,a,'213']
console.log(sss)//["adsaf", "adsaf", "213"]
// ———————————— 元组——————————————————\
let t1:[number,string,number?]=[1,'asfd']
t1[0]=300
t1[1]='asdfdsaf'
// ———————————— 枚举类型——————————————————
enum myenum{
'火神',
A,B,c,
asd,as
}
console.log(myenum)// "0": "A",
// "1": "B",
// "2": "c",
// "3": "asd",
// "4": "as",
// "A": 0,
// "B": 1,
// "c": 2,
// "asd": 3,
// "as": 4
console.log(myenum[0])//"火神"
// ———————————— 函数——————————————————\
function fun(a:string,b:number,c?:boolean):string{
return a+b
}
const f=fun('afd',6)
console.log(f)//"afd6"
// ———————————— 接口——————————————————\
interface obj{
name:string
age:number
}
const object:obj={
name:'yang',
age:2
}
// ———————————— tap——————————————————\
type myname =string|number
let ag:myname='asdg'
// ———————————— 泛型——————————————————\
function funb<typename>(a:typename,b:typename):typename[]{
return[a,b]
}
funb<number>(9,0)
funb<string>('a','g')
funb('a','d')
// ———————————— 函数重载——————————————————\
function fund (name:string):string
function fund (age:number):number
function fund(value:string|number):any{
if(typeof value==='string'){
return'你好我的是'+value
}
else if(typeof value ==='number'){
return '今年'+value+'岁'
}
else
return'错'
}
console.log(fund('asfdasd'))//你好我的是asfdasd"
console.log(fund(8))//"今年8岁
// —————————接口继承———————————————————————————————————\
interface farther{
name:string
age:number
}
interface son extends farther{
sex:string
}
const ren:son={
name:'西门飞雪',
age:21,
sex:'man'
}
console.log(ren)
//---------------------------类的修饰符------------------------
class article{
//规定类 的实例
public title:string
content:string
age=100
huozhe?:boolean
private money?:number
constructor(title:string,content:string){
this.title=title
this.content=content
}
}
const beiying=new article('标题','内容')
//---------------------------存取器------------------------
class user{
private _password:string=''
getpassword():string{
return '***'
}
setpassword(newps:string){
this._password=newps
}
}
const usera=new user()
console.log(usera.getpassword)
//---------------------------抽象类-----------------------
abstract class animal{//规范格式的类
abstract name:string
abstract makesound():void
}
class cat extends animal{
name:string='咪咪'
makesound():void{
}
}
//------------------------------类实现接口==----------------------
interface Animals{
name:string//普通属性
get sound():string//存储器属性
makesound():void //普通方法
}
//类实现一个接口
interface b{
age:number
}
class dog implements Animals,b{
name:string='勾子'
age:number=2
makesound():void{
}
get sound():string{
return 'aaa';
}
}
//--------------------------类与泛型结合,,泛型类------------
class myclass<T>{//类中设置泛型
public value:T
constructor(value:T){
this.value=value
}
do(input:T):T{
console.log(this.value+'已处理')
return input
}
}
const myStr = new myclass<string>('hello')
myStr.do('abd')
const myNUm=new myclass<number>(123)
myNUm.do(125124)