【前端库】typescript 入门笔记

安装

安装typescript的编译器

如果在编辑器内编辑好了以后,那么怎么编译成javascript了,就得在node的cnpm安装编译器,通过命令行,将ts后缀文件编译成javascript。

// 安装
cnpm install -g typescript
在编辑器内安装typescript 编辑插件,比如:在Sublime Text 3 中 按ctrl+shift+p ,然后安装插件那样安装,在输入typescript

编译命令行

将typescript文件.ts的后缀 编译成javascript 。命令:

// 编译单个文件.ts的后缀,比如下面的main文件
tsc main.ts

// 编译多个文件.ts的后缀,比如下面的main和workers文件
tsc main.ts worker.ts

// 编译全部的文件.ts的后缀,
tsc *.ts

// 可以使用 --watch来自动编译typescript文件,比如下面的main文件:
tsc main.ts --watch

多行字符串

使用多行字符串

// 使用 `` 可以在字符串内生成换行,比如正常的时候
var str = '
字符串拼接
'
// 上面只样是不正确,会报错,那么对于多行字符可以减少。


var str =`
\n正确
\n哈哈哈
`
// 上面只有使用多行字符串是正确的

字符串模板

调用声明好的字符串或者是函数。然后使用 表达式${} 来调用

==注意:表达式内,必须得使用单引号才能解析变量或者方法,如果是双引号的话,解析的是字符串。==

var str = '我是var的字符串';
function str () {
    return '我是函数return的字符串'
}
console.log('开始调用 ${str}'); // 调用字符串
console.log('开始调用 ${str()}'); // 调用方法

自动拆分字符串

function fn (name,age,sex) {
    console.log('打印name',name);
    console.log('打印age',age);
    console.log('打印sex',sex);
}

var age = 12;
var sexFn = function  () {
    return '男';
}

fn `youer name is 金 ${age} ${sexFn()}`;

参数的新特性

参数类型

参数后面使用冒号来指定参数类型,只能是提醒,编译后,JavaScript 正常执行

var name:string = '金山';
name = 123; // 这里会给你报错

// 自动化检测类型,当你了赋值其他的了类型,会提醒你
var name = '金山';
name = 123; // 这里也会报错


// typescript 定义任何类型都可以的,比如将一个字符串变数值就必须得是 any定义类型
var name:any = '金山';
name = 1231; // 这里就不会报错.
下面是常用的类型

==默认情况下null和undefined是所有类型的子类型。就是说你可以把 null和undefined赋值给number类型的变量。在某处你想传入一个 string或null或undefined,你可以使用联合类型==

var sex:boolean = true;// 定义一个变量sex,类型为布尔。
var name:string = '金山';// 定义一个变量name,类型为字符串
var num:number = 88888; // 定义一个数值类型的变量。可以是浮点小数,正整数,二进制,十进制,十六进制
let hexLiteral: number = 0xf00d;
let binaryLiteral: number = 0b1010;
let octalLiteral: number = 0o744;
var o : any = 1231; // 定义一个任何可以改变的变量。
let u: undefined = undefined; // 定义一个undefined类型的变量
let n: null = null; // 定义一个null的变量


// 下面是定义数组类型
let arr:number[] = [1,3,4,5]; // 定义数组全是数字的类型。还可以定义其他的,比如var list:any[] = [1, true, "free"];。或者下面也是可以这样写
let arr:Array<number> = [3,4,5,6,7,8,0b1010,0o744]; 

// 下面是空类型,表示没有任何类型,使用viod,与any是相反的。只能为它赋予undefined和null
let unusable: void = undefined;
// 下面定义一个函数不需要的返回值的类型也使用 viod
function ts ():void {
    return ''; // 这样就会报错,声明类型为不返回值。
}

// 下面还可以指定其他类型返回值,比如:返回一个string类型的值
function fn ():string {
    return '';
}

// never类型,never类型表示的是那些永不存在的值的类型。比如:总是会抛出异常、根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型
function error(message: string): never {// 返回never的函数必须存在无法达到的终点
    throw new Error(message);
}
function fail() {// 推断的返回值类型为never
    return error("Something failed");
}
function infiniteLoop(): never {// 返回never的函数必须存在无法达到的终点
    while (true) {
    }
}

// 还可以使用参数弄类型调用
function fn (name:string):number {
    return 12;
}
fn('金山');// 这里必须得 是字符串传进去

// 其他的都可以试试。

// 下面是自定义一个类型,比如自定义一个pp的类型,里面的name是字符串,age是数字的类型
class pp () {
    name:string;
    age:number
}
// 使用
var p = new pp();
p.name = '金山';
p.age = 123;

// 使用enum 枚举 ,前面加上枚举的enum ,遍历第几个,但是这个不是json哦
enum jia { r,q,f };
let msg:jia = jia.r;// 赋值msg变量
console.log(jia.r); 
conosle.log(msg);
// 但是可以直接赋值是可以的;

综合使用以上

let msg:any = 88888;
var str:string = '我是';
function run (_ws:number) {
    return _ws+'名码农';
}
console.log(`${str}${run(1)}${msg=',真的是了'}`);
默认传参和可选参数
var str:string = '张三';
function fn (can:string,can2:number,can3:string = '默认参数') {
    console.log(can);
    console.log(can2);
    console.log(can3);
}
fn('我是参一','我是参二'); // 如果参数不传的话,则报错。而第三个参数可以使用默认参数,那么就可以不报错


// 如果默认参数在前面的话,可以使用传参的话,可以使用逗号隔开.


// 使用可选参数,使用问号就可以变成可选。
function fn (can:string,can2?:number,can3:string = '默认参数') {
    console.log(can);
    console.log(can2);
    console.log(can3);
}
fn('一个参数');// 可选参数的话,只要一个就可以了。

变量

申明多个变量及值,等等

// 使用[变量1, 变量2] = [值1,值2] ; 变量1对应值1; 
let [a,b] = [1,6];
console.log(a);
console.log(b);

// 声明少量的变量,让最后一个变量将剩余变量值存起来。使用 ... 来将剩余的变量值给他。
let [name,...color] = ['金山','红色','绿色','白色','黄色'];
conosle.log(name);
console.log(color);

// 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值