一、开发环境搭建
(1)下载nodejs并安装
(2)使用npm全局安装typescript:npm i -g typescript
(3)创建一个ts文件
(4)使用tsc对ts文件进行编译,进入文件所在的目录 tsc xxx.ts
二、类型声明
声明变量可指定变量的类型
let 变量:类型
let 变量:类型=值
function fn(参数:类型,参数:类型):类型{ }
所涉及的类型:number string Boolean 字面量 any unknown void
never object tuple enum
//声明a 变量且指定类型为number
var a = 10;
//字面量声明,限制b的值只能为10
var b;
b = 10;
// b=12;//会报错
//可以使用|连接多个类型
var c;
c = true;
//any表示任意类型,一个变量设置为any后,相当于对该变量关闭了ts的类型检测
//一般不建议使用,还能影响别的变量的值
var d;
//unknown:表示未知类型的值,可以赋值给任意变量,实际上是一个类型安全的any
var e;
e = 15;
e = "hello";
e = true;
//类型断言,可以用来告诉解析器变量的实际类型
/*
语法:变量 as 变量
<类型>变量
*/
var h = d;
var h2 = e;
//void:空值(undefined.null):设置返回值的类型,没有返回值
function fn() {
return true;
//返回值必须是布尔值
}
/**
* never没有值:表示永远不会返回值
*/
function fs() {
throw new Error("报错了");
}
//任意的js对象object,但是不是很实用
var k;
k = {};
k = function () {
};
//属性名后边加上一个问号,表示属性是可选的,可写可不写
var g;
g = { name: "孙悟空", age: 25 };
//设置函数结构类型声明
//(形参:类型,形参:类型...)=>{}
/**
* number[]表示数值类型的数组
* 数值类型声明:类型[] Array<类型>
*/
/**
* 元组:就是固定长度的数组
*/
var m;
m = ["heoo", "hi"];
/**
* enum枚举:把所有可能的情况列出来
*
*/
var Gender;
(function (Gender) {
Gender[Gender["male"] = 0] = "male";
Gender[Gender["female"] = 1] = "female";
})(Gender || (Gender = {}));
var i;
i = {
name: "as",
gender: Gender.male
};
console.log(i.gender == 0);
三、TS 编译选项
tsc xxx.ts -W 能让所有的ts文件转译成JS
新建tsconfig.json.js文件,清空全部的内容留下{ },直接运行tsc 命令能直接编译所有的ts文件
配置选项:
>include:用来指定哪些文件需要被编译(**表示任意目录,*表示任意文件`)
>`exclude:不需要被编译的文件`
>extends:定义被继承的配置文件
>files:[]指定被编译的文件列表
>CompilerOptions:编译器的选项
>{
>“target”:来制定ts被编译的ES版本
>“module”:指定要是用的模块化规范
>“lib”:[] 用来指定项目中要使用的库
>"outDir":用来指定编译后文件所在的目录
>“outFile”:将代码合并为一个文件
>“allowTs”:布尔值,是否对js文件编译,默认为false
>“checkJs”:布尔值,检查js代码是否符合语法规范
>“removeComments”:布尔值,是否移除注释
>“noEmit”:布尔值,不生成编译后的文件
>“noEmitOnError”:当有错误时不生成编译文件
>“alwaysStrict”:布尔值,是否将编译后的文件使用严格模式
>“noImplictAny”:不允许隐式的any类型
>“strictNullChecks”:严格的检查空格
>“strict”:所有严格检查的总开关
>}