介绍
安装
npm i -g typescript
编译指令
tsc hello.ts
配置vscode,自动编译ts文件
1.tsc --init,改tsconfig.json的outDir
2.点击菜单 任务-运行任务 点击tsc:监视-tsconfig.json 然后就可以自动生成代码了
hbuilder如何配置
1.菜单 工具-插件安装
2. 安装typescript插件
数据类型
1.布尔 boolean
var flag:boolean = true
2.字符串 string
var str:string = 'hello ts'
3.数组 array
// 第一种:
var arr:number[] = [1,2,3]
// 第二种:
var arr:Array = [1,2,3]
// 第三种
var arr:any[] = [1, 'hello']
4.number
var num:number = 123
5.元组类型tuple-属于数组的一种
var arr:[number, string] = [1,2,3,'hello'] // 顺序不能乱
6.枚举enum
enum Flag {success = 1, error = 2}
let s:Flag = Flag.success; // s = 1
// 如果标识符没有赋值,它的值就是下标,下标从0开始,也可以指定下标开始数值
enum 枚举名{
标识符[=整型常数]
...
}
7.任意类型any
var num:any = 'hello'; 应用场景:var oBox:any = document.getElementById('box'); oBox.style.color = 'red';
8.null和undefined
var num:number | undefined;
9.void类型,一般用于定义方法时,方法没有返回值
function run():void{}
10.never类型:是其他类型(包括null和undefined)的子类型,代表从不会出现的值
var a:never;
a = (() => {throw new Error('error')})()
函数
function fun():string {}
var fun = function():string{}
function fun(name:string):number {}
function func(name:string, age?:number):string{}
function sum(...result:number[]):number{}
类
可索引接口
1.数组、对象的约束
2.不常用
3.interface UserArr {[index:number]:string}, var arr:UserArr = ['test']
4.interface UserObj {[index:string]:string }, var arr:UserObj = {name: 'test'}
5.
interface Animal {
name:string,
eat(name:string):void;
}
class Dog implements Animal {
name: string;
constructor(name:string) {
this.name = name
}
eat() {
console.log(this.name + 'test')
}
}
const dog = new Dog('haha')
dog.eat()
接口扩展
1.接口继承接口
泛型
1.解决类接口的可复用性
2.对不特定数据类型的支持
3.any可以解决这个问题,但是放弃了类型检查
4.传入什么类型,函数返回什么类型----泛型
5.function getData
6.还可以这么写:function getData
泛型类
class MinClass{
public list:T[] = []
add(value:T):void {
this.list.push = value
}
min():T{
var tmp = this.list
var min = tmp[0]
for(var i = 0; i < tmp.length;i ++) {
if(min > tmp[i]) {
min = tmp[i]
}
}
return min
}
}