这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天
初试
- 创建一个TS文件
- 终端 tsc XXX 将ts编译
TS 的类型声明
在变量中用
let a:number
a=10
在函数中用
function sum(a:number,b:number):number{
return a+b;
}
类型:number string Boolean
let b:'male'|'famale'
b="male"
let c:any
c=10
c='qqq'
c=true
任意类型
let e:{name:string,[propName:string]:any}
e={name:'zcz',age:18,gender:'nan'}
let f:(a:number,b:number)=>number;
d=function(n1:number,n2:number):number{
return n1+n2
}
//数组
let g:string[];
let h:number[];
//枚举
enum Gender{ //定义枚举类型可以把所有可能的值都列举出来
Male = 0,
Female = 1,
}
let k: {name: string, gender: Gender};
k = {
name: '孙悟空',
gender: Gender.Male
}
console.log(k.gender === Gender.Male)
&表示同时满足
let o: {name: string} & {age: number};
o = {name: '孙悟空', age:18}
//类型的别名
type myType = 1 | 2 | 3 | 4 | 5;
let p: myType;
let l: myType;
let m: myType;
p = 2;
TS编译选项
TS配置文件
//tsconfig.json
{
//"include":表示编译范围,不能为空
"include": [
// '**'任意目录,* 任意文件
"./src/**/*"
],
//"exclude": 表示不编译范围,可以为空,
// 一般不需要被编译,有默认值["node_modules", "bower_components", "jspm_packages"]
"exclude": [
"./src/**/exclude.ts"
],
//"compilerOptions":编译器选项
"compilerOptions": {
//编译的ES版本--esnext为最新版本,不知道有什么版本的话,先随便写(abc)然后编译器报错里面有提示
"target": "ES6",
// 模块化规范
"module": "amd",
// 用于指定所需要用到的库
"lib":[
"dom", "es2016"
],
// 用于指定生成的js文件放置的位置
//*************************outDir和outFile可能会冲突!!!****************************
"outDir":"./dist",
// 所有的全局作用域中代码合并到同一个文件中
//!!!!此时"module": "amd"或"system",(Only 'amd' and 'system' modules are supported alongside --outFile.)
"outFile": "./dist/app.js",
// 是否对js文件进行编译
"allowJs": true,
//是否检查js文档是否规范
"checkJs": true,
// 是否移除注释
"removeComments": true,
// 不生成编译后的文件,不想生成js文件
"noEmit": true,
// 有错误时不生成js文件
"noEmitOnError": false,
// =============严格检查================
// 严格检查总开关(建议开)
"strict": true,
// 用来设置编译文件后是否使用严格模式
"alwaysStrict": true,
// 不允许使用隐式any
"noImplicitAny": true,
// 不允许没有指定this
"noImplicitThis": true,
// 不允许有可能对空值进行操作的情况
"strictNullChecks": true,
},
}