基础

1.ts是以js为基础构建的语言,是一个js的超集(对js进行了扩展);

2.ts(type)最主要的功能是在js的基础上引入了类型的概念;

typescript class 实例export typescript yield_javascript

Js的类型是只针对于值而言,ts的类型是针对于变量而言

Ts可以被编译成任意版本的js,从而进一步解决了浏览器版本之间的兼容性问题

typescript class 实例export typescript yield_数组_02


ts解析为js的解析器是用node.js写的;

typescript class 实例export typescript yield_javascript_03

类型

typescript class 实例export typescript yield_typescript_04


类型也可以定义在函数的参数和返回值身上

js中的函数是不考虑参数的类型和个数的

类型都是小写的

typescript class 实例export typescript yield_javascript_05


typescript class 实例export typescript yield_javascript_06


typescript class 实例export typescript yield_开发语言_07


any类型不仅嚯嚯别人,也嚯嚯自己,将any类型的变量赋给特定类型的变量,那特定类型的变量也会关闭类型检查

unkonw类型只会活活自己,赋值给其他类型会报错

typescript class 实例export typescript yield_typescript_08


typescript class 实例export typescript yield_开发语言_09


typescript class 实例export typescript yield_typescript_10


typescript class 实例export typescript yield_typescript_11


遇到变量类型不确定的时候,尽量用unknow类型

不写函数的默认返回值的类型,则函数的默认返回值与return 的值的类型一样

typescript class 实例export typescript yield_元组_12


typescript class 实例export typescript yield_javascript_13

// 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

编译