TypeScript学习笔记

一、Typescript是什么

类型脚本,所以类型是很重要的,TypeScript是JavaScript类型的超集,可以编译成纯JavaScript。

但是需要给JS加上可选的类型系统,加上静态类型后,能将调试从运行期提前到编码期

二、配置

1、let和const

已经不再使用JS中的Varley,加上类型说明:

let test_1:string='Hello TypeScript!';
console.log(test_1);

联合类型

let test_2:string | number='TS';

2、解构

可以把对象和数组的元素拆分到指定变量中,方便使用

let test_3=[1,2,3,4];
let [fir,se]=test_3;
console.log(fir);
console.log(se);
let [one,...other]=test_3;
console.log(other);
let newArr=[89,...test_3,18];
console.log(newArr);

...other表示将剩余的数组展开

3、函数

// 定义函数
function greeting(firstName:string,lastName:string):string{
    return 'Hello'+' '+firstName+lastName;
}
console.log(greeting('Lee ','zhuo '));

定义函数需要注意的点:

变量名:类型

function 函数名():返回值类型{}

4、可选参数

变量名?:类型 表示的意思是,如果有这个变量,则变量类型为指定类型,如果没有就算了

// 可选参数的函数
function greeting(firstName:string,lastName?:string):string{
    if(lastName)
        return 'Hello'+' '+firstName+lastName;
    else
        return 'Hello'+' '+firstName;
}
console.log(greeting('Lee ','Zhuo '));

5、默认参数

当有默认参数时,如果不输则默认为默认参数,如果有传递实参则给出实参的值

// 默认参数
function greeting(firstName:string,lastName='ZZ'):string{
    return 'Hello'+' '+firstName+lastName;
}
console.log(greeting('Lee '));

6、剩余参数

必要参数,默认参数和可选参数有个共同点:它们表示某一个参数。 有时,你想同时操作多个参数,或者你并不知道会有多少参数传递进来, 在TypeScript里,你可以把所有参数收集到一个变量里

//剩余参数,会被当做个数不限的可选参数。可以一个都没有,也可以有任意个
function greeting(firstName: string, ...restName: string[]) {
  return `Hello ${firstName} ${restName.join(' ')}!`;
}
console.log(greeting('Osama', 'bin', 'Muhammad', 'bin', 'Awad', 'bin', 'Laden'));
console.log(greeting('Laden'));

7、箭头函数

//无参数,函数体代码只有一行,则该行结果即为函数返回值
let greeting1 = () => `Hello TS!`;
console.log(greeting1());
//一个参数,函数体代码只有一行,则该行结果即为函数返回值
let greeting2 = (name: string) => `Hello ${name}`;
console.log(greeting2('QiGe'));
//两个及以上的参数,函数体代码只有一行,则该行结果即为函数返回值
let add1 = (n1: number, n2: number) => n1 + n2;
console.log(add1(1, 2));
//两个及以上的参数,函数体代码多于一行,则必须用{}包裹,且显式给出return
let add2 = (n1: number, n2: number) => {
  let sum = n1 + n2;
  return sum;//改为sum++结果如何?
}
console.log(add2(1, 2));

8、关于类

类是生成对象过着类实例的模板,Angular宽假大量使用类

class CAR{
    name: string;
    place:string;
    constructor(name:string,place:string){
        this.name=name;
        this.place=place;
    }
    show():void{
        console.log(this.name);
        console.log(this.place);
    }
}
let mycar=new CAR("baoma","chongqing");
mycar.show();

这里的类和C++的类基本上一致,用法也类似

当然类也是有访问权限的,当然和C++一样,私有属性只能内部访问,共有属性才能外部访问。

例如,将name定义为private的话,在外调用则会报错。

存取器-getter、setter

设置getter和setter操作其private属性,即使public属性也是这样

9、静态属性

类中的属性或函数有static修饰,则可直接使用而不需要实例化

10、继承

可以通过extends关键字继承其它类,从而成为其子类

11、模块

对于大型的项目,我们需要使用模块进行管理。每个 .ts 文件就是一个模块,通过 export 来对外部模块暴露元素,通过 import 来引入模块。

在项目文件夹下新建目录modules和文件main.ts,并在modules下新建name.ts和weather.ts文件,如下:

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可 6私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值