typeScript的数据类型和函数
Posted web交流
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typeScript的数据类型和函数相关的知识,希望对你有一定的参考价值。
typeScript的数据类型,写代码必须指定类型
// 布尔类型
// let flag = true;
// flag = 4567; //ts报错
// var flag:boolean = true; //指定类型
// flag = 123; //one.ts:8:1 - error TS2322: Type '123' is not assignable to type 'boolean'
// flag = false; //
// 数字类型
// var number:number=123;
// console.log(number)
// number = '123'//one.ts:14:1 - error TS2322: Type '"123"' is not assignable to type 'number'.
// 字符串类型
// let str1:string='123';
// console.log(str1)
// str = 123//one.ts:14:1 - error TS2322: Type '"123"' is not assignable to type 'string'.
// 数组类型(两方式)
// 1
// let numberarr:number[] = [11,22];//所有数字都是数字
// 2
// let numberarr1:Array<number> = [11,22];//所有数字都是数字
// let stringarr:string[] = ['11','22'];//所有数字都是字符串
// 元组类型
// let numberarr1:[number,string]=[123,'123'];//数字,字符串
// 枚举类型
// enum flag {//枚举赋值显示值
// success=1,error=2
// }
// let s:flag = flag.success
// let f:flag = flag.error
// console.log(s);//1
// console.log(f);//2
// enum color { //枚举没有赋值显示下标
// red,yellow,black
// }
// let colo:color=color.red;
// console.log(colo,'colo') //0 "colo"
// 任意类型
// let num1:any = 123;
// console.log(num1);
// num1 = 'nihao';
// console.log(num1);
// null和undefined 其他类型的子类型
// let num1:number;
// console.log(num1);//undefined //报错
// let num1:undefined ;
// console.log(num1);//undefined //正确
// let num1:undefined | number;
// console.log(num1);//undefined //正确
// let num1:null;
// console.log(num1); //报错
// let num1:undefined | number | null;
// num1 = 1234;
// console.log(num1); //正确
// viod类型 没有任何值 定义的方法没有还回值
// function run():void{
// console.log(111) //111
// }
// run()
// function run():void{
// return 1111 //直接nType '1111' is not assignable to type 'void
// }
// run()
// function run():number{
// return 1111
// }
// console.log(run(),'run') //1111 "run"
// function run():void|number{
// return 1111
// }
// console.log(run(),'run') //1111 "run"
// never类型 其他类型 从不会出现赋值 声明never只能被never类型复制
// let a:undefined;
// a=123 //报错
// a=null//报错
// a=undefined //ok
// let a:null;
// a=123 //报错
// a=null//ok
// a=undefined //报错
// let a:never;
// // a=123 //报错
// a=(()=>{
// throw new Error('错误') //抛出错误
// })()
// console.log(a,"错误")
typeScript的函数
// ts函数的定义
//函数声明 es5
// function run(){
// return 1
// }
// var run1= function(){
// return 1
// }
// ts定义函数
// 函数声明
// function run():string{ //必须还回string
// return '2'
// }
//匿名 函数
// let run2 = function():string{//必须还回string
// return '2'
// }
// ts定义方法传参
// function getInfo(name:string,age:number):string{
// return `${name}---${age}`
// }
// getInfo('李哥','20') //错误
// getInfo('李哥',20) //正确
// let getInfo = function(name:string,age:number):string{
// return `${name}---${age}`
// }
// getInfo('李哥','20') //错误
// getInfo('李哥',20) //正确
//没有返回值的方法
// function run():void{
// console.log(111111111)
// }
// run();
// 参数的可选方式
// ts中实参跟形参必须一样,如不一样需配置可选参数
// function getInfo(name:string,age?:number):string{ //?代表可选参数可传可不传
// if(age){
// return `${age},hahhaha`
// }else{
// return `${name},hahhaha`
// }
// }
// console.log(getInfo('李哥',2222))
// ts默认参数
// function getInfo(name:string,age:number=20):string{ //默认参数
// if(age){
// return `${age},hahhaha`
// }else{
// return `${name},hahhaha`
// }
// }
// console.log(getInfo('李哥'))
// 剩余参数
// function sum(a:number,b:number,c:number,d:number){
// return a+b+c+d
// }
// alert(sum(1,2,3,4))
// ...运算符
// function sum(...result:number[]):number{
// let sum = 0;
// result.forEach((item,index)=>{
// sum+=item;
// })
// return sum
// }
// alert(sum(1,2,3,4,5))
// function sum(x:number,...result:number[]):number{
// let sum = x;
// result.forEach((item,index)=>{
// sum+=item;
// })
// return sum
// }
// alert(sum(1,2,3,4,5))
// ts函数重载
// function css1(config:string):string;
// function css1(age:number):string;
// function css1(str:any):any{
// if(typeof str==='string'){ //typeof
// return '我是'+str
// }else{
// return 'hahahah'+str
// }
// }
// console.log(css1(20)) //正确
// console.log(css1('lisi')) //正确
// console.log(css1(null)) //错误
// function css1(config:string):string;
// function css1(config:string,age:number):string;
// function css1(config:any,age?:any):any{
// if(age){
// return 'wo shi shuai ge'+age
// }else{
// return 'wo shi chou ba guai'+config
// }
// };
// console.log(css1('2B')) //wo shi chou ba guai2b
// console.log(css1('2B',20)) //wo shi shuai ge20
静态属性 静态方法
/*
function Person(){
this.run1=function(){
}
}
Person.name='哈哈哈';
Person.run2=function(){ 静态方法
}
var p=new Person();
Person.run2(); 静态方法的调用
*/
// class Per{
// public name:string;
// public age:number=20;
// //静态属性
// static sex="男"; //static声明静态属性 方法
// constructor(name:string) {
// this.name=name;
// }
// run(){ /*实例方法*/
// alert(`${this.name}在运动`)
// }
// work(){
// alert(`${this.name}在工作`)
// }
// static print(){ /*静态方法 里面没法直接调用类里面的属性*/
// alert('print方法'+Per.sex);
// }
// }
// // var p=new Per('张三');
// // p.run();
// Per.print();
// alert(Per.sex);
//多态:父类定义一个方法不去实现,让继承它的子类去实现 每一个子类有不同的表现
多态属于继承
/*
class Animal {
name:string;
constructor(name:string) {
this.name=name;
}
eat(){ //具体吃什么 不知道 , 具体吃什么?继承它的子类去实现 ,每一个子类的表现不一样
console.log('吃的方法')
}
}
class Dog extends Animal{
constructor(name:string){
super(name)
}
eat(){
return this.name+'吃粮食'
}
}
class Cat extends Animal{
constructor(name:string){
super(name)
}
eat(){
return this.name+'吃老鼠'
}
}
*/
//typescript中的抽象类:它是提供其他类继承的基类,不能直接被实例化。
//用abstract关键字定义抽象类和抽象方法,抽象类中的抽象方法不包含具体实现并且必须在派生类中实现。
// abstract抽象方法只能放在抽象类里面
// 抽象类和抽象方法用来定义标准 。 标准:Animal 这个类要求它的子类必须包含eat方法
//标准:
// abstract class Animal{
// public name:string;
// constructor(name:string){
// this.name=name;
// }
// abstract eat():any; //抽象方法不包含具体实现并且必须在派生类中实现。
// run(){
// console.log('其他方法可以不实现')
// }
// }
// // var a=new Animal() /*错误的写法*/
// class Dog extends Animal{
// //抽象类的子类必须实现抽象类里面的抽象方法
// constructor(name:any){
// super(name)
// }
// eat(){
// console.log(this.name+'吃粮食')
// }
// }
// var d=new Dog('小花花');
// d.eat();
// class Cat extends Animal{
// //抽象类的子类必须实现抽象类里面的抽象方法
// constructor(name:any){
// super(name)
// }
// run(){
// }
// eat(){
// console.log(this.name+'吃老鼠')
// }
// }
// var c=new Cat('小花猫');
// c.eat();
以上是关于typeScript的数据类型和函数的主要内容,如果未能解决你的问题,请参考以下文章