本文内容如下
typescript是什么?与js有什么区别?如何使用?
如果你都有了答案,可以忽略本文章,或去JS学习地图寻找更多答案
配置文件
tsconfig.json
{
"exclude":["node_modules","dist"], //不编译的文件
"include":["test.ts"], //要编译的文件
"files":["test.ts"], //要编译的文件
"compilerOptions":{
"baseUrl": "./src", //指定根路径
"target": "es5", //用来指定被编译为的ES的版本
"lib": [ //编译过程中需要引入的库文件的列表
"dom",
"dom.iterable",
"esnext"
],
"module": "esnext", //
"rootDir":"./src" //入口文件
"outDir":"./build" //出口文件
"strict":true //严格按照ts规范,开启全部规则
"sourceMap":true //开启代码隐射
"noEmit": false, //不生成编译后的文件 默认false
"noEmitOnError": false, //当有错误时不生成编译后文件
"alwaysStrict": false, //用来设置编译后的文件是否使用严格模式,默认false
"allowJs": true, //是否对js文件镜像编译,默认false
"checkJs": true, //是否检查js代码是否符合语法规范,默认false
"emitDecoratorMetadata": true, //给源码里的装饰器声明加上设计类型元数据
"experimentalDecorators": true, //启用实验性的ES装饰器
"moduleResolution": "node", //优先查找modules,classic是优先查找自定义的文件
"removeComments":true //编译时去掉注释
"noImoliciAny":false //是否允许隐式any,false是允许,写false即可
"strictNullChecks":true //true是不允许null和undefined出现
"noImplicitThis": false,//不允许不明确的this
"noUnusedLocals":true //检测未使用的变量
"noEmitHelpers": true, //不再输出文件中生成用户自定义的帮助函数代码,如__extends。
"skipLibCheck": true,
"esModuleInterop": true, // 允许export=导出,由import from 导入
"allowSyntheticDefaultImports": true, //允许默认导出
"forceConsistentCasingInFileNames": true, //强制文件名大小写一致
"noFallthroughCasesInSwitch": true, // 防止switch语句贯穿(即如果没有break语句后面不会执行)
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "react-jsx" //处理react
}
}
声明文件
使用第三方模块时,index.d.ts是第三方模块的声明文件,它的作用是:获得代码补全,接口提示等等
一般第三方模块自己是没有写的,而是由微软提供且维护的
1.到微软官方github查看是否有声明文件
microsoft.github.io/TypeSearch/
2.有的话,则可以引入第三方声明文件使用
cnpm i -S @types/jquery
3.没有的话,自己可以写,这里不介绍了
declare let jQuery:(selector:string) => any
学习更多