基础
1.ts是以js为基础构建的语言,是一个js的超集(对js进行了扩展);
2.ts(type)最主要的功能是在js的基础上引入了类型的概念;
Js的类型是只针对于值而言,ts的类型是针对于变量而言
Ts可以被编译成任意版本的js,从而进一步解决了浏览器版本之间的兼容性问题
ts解析为js的解析器是用node.js写的;
类型
类型也可以定义在函数的参数和返回值身上
js中的函数是不考虑参数的类型和个数的
类型都是小写的
any类型不仅嚯嚯别人,也嚯嚯自己,将any类型的变量赋给特定类型的变量,那特定类型的变量也会关闭类型检查
unkonw类型只会活活自己,赋值给其他类型会报错
遇到变量类型不确定的时候,尽量用unknow类型
不写函数的默认返回值的类型,则函数的默认返回值与return 的值的类型一样
// object表示一个js砂象,object一般来说在开发里面是不使用的,一般想定义一个对象的目的是想定义其中有哪些属性
let a :object;
a= 0;
a = function(){}
js里面的属性名就是字符串类型
// {} 用来指定矿象中可以包含哪些属性
// 语法:{属姓名:属姓值,属姓名:属姓值子// 在属性名后边加上?,表示属性是可选的
let b: {name: string, age?: number};
b= {name:'孙悟空',age:18};
// [propName: string]:any 表示任意类型的属性,下面那行代码表示c的类型里面必须有name属性,其他类型的属性可有可无
let c: {name: string, [propName: string]: any};
c = {name:'猪八戒',age:18,gender:'男'};
/*
* 設置函数结构的类型声明:
*语法:(形参:类型,形参:类型•..D=>返回值
①* */
let d: (a: number ,b: [number)=>number;
-// d = function (n1: string, n2: string): number{
return 10;
//
1/*
数组的类型声明:
类型[]
Array<类型>
**/
// string[] 表示字符中数组
let e: string|];
e = ['a', 'b', 'c'];
// number[]表示数值数值
let f: number[];
let g: Array<number>;
9 = [1,2,3]
//*
*元组,元组就是固定长度的数组
*语法:[类型,类型,类型]
* */
let h: [string, number];
h = ['hello', 123];
/*
* enum枚举
*
* */
enum Gender{
Male = 0 ,
Female = 1
]
let i: {name: string, gender: Gender};
i={
name:'孙悟空',
gender: Gender.Male // 'male'
}
console.log(i.gender === Gender.Male
// &表示同时
let j: { name: string } & { age: number };
// j= iname:‘孙悟空',age:18};
// 类型的别名
type myType = 1|2|3|4 | 5;
let k: mytype;
let l: mytype;
let m: myType;
k = 2
编译