ts的数据类型:
number、string、[](数组)、{}(对象)、enum(枚举)、unknown、any.....
ts和js的区别js为弱类型语言,ts不是
ts可以兼容js所有的语法并有自己新的语法
ts是将自己编译成js然后运行到浏览器上,并不是直接运行。
具体类型代码示例如下
// 声明变量a为number类型,只能赋值number类型
let a : string;
a = "hello";
console.log(a);
//可以用这个类型设定变量的类型
//后面的number表示函数返回值为number
function sum(a:number,b:number):number{
return a+b;
}
sum(100,100)
//设置为boolean
let f : boolean;
//字面量限制b为10
let b : 10;
//字面量限制c为10或者11
let c : 10|11;
//设置为any类型 ts会关闭检测
let g : any;
//unknown不会把这个类型给别人,安全类型的any,any会把any类型给别人
let e : unknown;
let s : string;
e = "hello";
//类型断言,告诉编译器类型实际类型
// s=e;
s = e as string;
s = <string>e;
//无返回值 never表示永远没有结果
function fu() :never{
throw new Error("程序报错了");
}
//声明为一个对象
let y :object;
//限制z为一个对象,且里面必须要有name属性且只能有name,他的属性值为string
let z :{name : string};
//限制zy为一个对象,且里面必须要有name属性,它的属性值为string,age为可选的
let zy :{name : string , age? : number};
//name属性必选,其它属性随便,但是key为string类型
let xyz :{name : string ,[proName :string] : any}
//表示number类型的数组
let v: number[];
//数组表示 类型[]
// Array<类型>
let h: Array<number>;
//元组固定长度的数组,存储效率比较好
let m :[string,string];
m = ["hello","level"];
/*
枚举
enum
*/
enum Gender{
Male = 0,
Female = 1
}
let i :{name: string, gender: Gender};
i = {
name:"zlt",
gender:Gender.Male
}
//u必须要同时满足两个条件才行
let u :{name : string} & {age :number}
u={name:"孙悟空" , age : 1000}
//给类型取别名
type myType = 1|2|3|4|5;
let p : myType;
p = 1
// 配置一个文件tsconfig
//然后可以tsc直接编译所有的文件,tsc-w监视所有文件
export const hi = () => {
console.log('Hello!');
};
ts的配置文件如下、建一个tsconfig.json进行ts配置
include表示哪些文件需求编译成js文件,在里面填写它的路径。
exclude表示哪些文件不需要编译成js文件
具体代码如下:
{
//这个ts的json可以写注释,用来指令哪些ts文件需要编译,/*任意文件,/**任意目录,./是当前目录 ,
// ../是父级目录,/是根目录(表示一下子回到最顶端的那个文件夹下)
"include": [
"../ts/**/*"
],
//排除编译文件
"exclude": [
],
"compilerOptions": {
//使用什么版本的es
"target": "ES6",
//指定使用模块化的规范
"module": "ES6",
//导入别的库,一般默认就行,除非是浏览器环境
// "lib": [],
//指定编译后文件的目录
"outDir": "./dist",
//合成一个文件
// "outFile": ""
},
}