1 什么是ts?
答:TypeScript,简称 ts,是微软开发的一种静态的编程语言,它是 JavaScript 的超集。强类型语言
2 js 与 ts 有什么区别?
答
- ts 有类型支持,有强大的代码类型提示
- ts 完全支持js 可以直接转换
- ts 先编译成js 在执行
- js 边解析边执行,错误会运行的时候发现
3 ts 的类型
首先 js有的类型ts 都有 number | string | boolean | null | nudefined | symbol | object(数组 对象 函数等对象) ts 新增类型
联合类型
需求:定义变量 可能是string,number 类型,这是 js类型已经无法满足了 语法:
const type: string | number = '2'
类型别名
定义类型的时候类型名往往很长,这个时候就需要在定义个别名,方便书写。 语法
type str = string;
const A :str = '123';
type ts1 = string | number;
const B :ts1 = 123;
const C :ts1 = '123';
数组类型
const data : string[] = ['1','2','3'];
//泛型
const list :Array<string> = ['1','2','3'];
const data1 : number[] = [1,2,3];
//泛型
const list12 :Array<number> = [1,2,3];
函数
const fun = (a:number,b:number) =>{
return a + b;
}
函数返回值类型void
场景:
- 函数没写 return
- 只写了return ,没有具体返回值
- return 的是 undefined
// 什么都不写 返回值类型为 void
const Get = ()= >{}
// 如果return之后什么都不写,返回值类型为: void
const Get = () => { return }
可选参数
function Post(a?: number, b?: string) {
console.log(111);
}
Post();
Post(1);
Post(1, '2');
可选和默认值区别
- 相同的 :调用函数时,可以少传参数
- 区别 设置了默认值之后,就是可选的,不写就会使用默认是,可选的参数一定有值
- 它们不能一起使用
元组
是一种特殊的数组
- 它约束的元素的个数
- 约定了特定索引对应的数据类型(any除外)
type D = [string,string,number]
const data = ['1','20',1]
type E = [string,number];
const data1 :E = ['张三',18]
type F = [string[],number[]];
const data2:F = [['1','2'],[123]]
字面量类型
type A = 'GET'| 'POST'
//正确
const a :A = 'GET';
const b :A = 'POST';
//错误
const C :A = 'PUT';
枚举
枚举(enum)的功能类似于字面量类型+联合类型组合的功能,来描述一个值,该值只能是 一组命名常量 中的一个。 在没有 type 的时候,大家都是用枚举比较多的,现在比较少了。
语法:
enum 枚举名 { 可取值1, 可取值2,.. }
使用:
//定义
enum buttonTye {'primary','success','warning','danger','info'}
// 使用
buttonTye.danger;
buttonTye.info
// ...
注意:
- 一般枚举名称以大写字母开头
- 枚举中的多个值之间通过
,(逗号)分隔 - 定义好枚举后,直接使用枚举名称作为类型注解
any 类型
const str:any = 111
const str1:any = '111'
了解更多可查阅官网: www.typescriptlang.org/