简介:
javascript 的超集,Typescript扩展了javascript,并添加了类型。
可以在任何支持JavaScript的平台中执行。
TS不能被JS解析器直接执行,需要安装TS编译器
TS开发环境搭建
1.安装node.js
2.使用npm全局安装typescript
npm i -g typescript
3.创建一个TS文件
4. 使用tsc对TS文件进行编译:(编译成JS)
tsc hello.ts //hello.ts 是文件名
TS语法
//类型注解
let str : string = "abc"
//类型断言
as a number
//基础类型和联合类型、
let v1 :string = "abc"
let v2 : number = 10
let v3 : boolean = true
let nu : null = null
let un : undefined = undefined
let v4 : string | null = null
let v5: 1 | 2 | 3 = 2
//数组类型
let arr : number[] = [1,2,3]
let arr1 : Array<string> = ['a','b','c']
//元组
let t1: [number,string,number] = [1,'a',2]
let t2: [number,string,number?] = [1,'a'] //第三个值可选
//枚举值
enum MyEnum {
A,
B,
C
}
console.log(MyEnum.A)
console.log(MyEnum[0])
//void类型 只有一个值undefined 通常用来给函数返回值
//函数类型
function MyFun(a:number, b:string):number { //可以设置返回值类型number
return 100
}
//
type Myusername = string | number
let a:Myusername = 10
//
function MyFun(a:number, b?:string):number { //b的值可选,一般可选值在右侧
return 100
}
//
function MyFun(a = 10, b:string):number {//a 的值可选,默认值是10。(特殊情况a在前面)
return 100
}
//
function MyFun(a = 10, b: string, c?: boolean, ...rest: number[]): number { //rest剩余值是一个数组结构
return 100
}
const f = MyFun(20, "nihao", true, 1, 2, 3, 4)
//接口
interface Obj {
name:string,
age:number
}
const obj:Obj = { //类型是Obj,遵守Obj的类型规则
name:"lihua",
age:18
}
//别名 type
type Myusername = string | number
let a:Myusername = 10
//泛型
function myFun<T>(a:T,b:T):T[]{
return [a,b]
}
myFun<number>(1,2)
myFun<string>("nihao","Ts")
myFun(true,false)