当前位置: 首页 > news >正文

南京网站搜索排名网络服务商包括

南京网站搜索排名,网络服务商包括,wordpress怎么重新配置文件,珠海网站建设排名TypeScript简介 TypeScript是JavaScript的超集。它对JS进行了扩展#xff0c;向JS中引入了类型的概念#xff0c;并添加了许多新的特性。TS代码需要通过编译器编译为JS#xff0c;然后再交由JS解析器执行。TS完全兼容JS#xff0c;换言之#xff0c;任何的JS代码都可以直…TypeScript简介 TypeScript是JavaScript的超集。它对JS进行了扩展向JS中引入了类型的概念并添加了许多新的特性。TS代码需要通过编译器编译为JS然后再交由JS解析器执行。TS完全兼容JS换言之任何的JS代码都可以直接当成JS使用。相较于JS而言TS拥有了静态类型更加严格的语法更强大的功能TS可以在代码执行前就完成代码的检查减小了运行时异常的出现的几率TS代码可以编译为任意版本的JS代码可有效解决不同JS运行环境的兼容问题同样的功能TS的代码量要大于JS但由于TS的代码结构更加清晰变量类型更加明确在后期代码的维护中TS却远远胜于JS。 1、TypeScript 开发环境搭建 下载Node.js 64位https://nodejs.org/dist/v14.15.1/node-v14.15.1-x64.msi32位https://nodejs.org/dist/v14.15.1/node-v14.15.1-x86.msi 安装Node.js 使用npm全局安装typescript 进入命令行输入npm i -g typescript 创建一个ts文件 使用tsc对ts文件进行编译 进入命令行 进入ts文件所在目录 执行命令tsc xxx.ts 2、基本类型 类型声明 类型声明是TS非常重要的一个特点 通过类型声明可以指定TS中变量参数、形参的类型 指定类型后当为变量赋值时TS编译器会自动检查值是否符合类型声明符合则赋值否则报错 简而言之类型声明给变量设置了类型使得变量只能存储某种类型的值 语法 let 变量: 类型;let 变量: 类型 值;function fn(参数: 类型, 参数: 类型): 类型{... }自动类型判断 TS拥有自动的类型判断机制当对变量的声明和赋值是同时进行的TS编译器会自动判断变量的类型所以如果你的变量的声明和赋值时同时进行的可以省略掉类型声明 类型 类型例子描述number1, -33, 2.5任意数字string‘hi’, “hi”, hi任意字符串booleantrue、false布尔值true或false字面量其本身限制变量的值就是该字面量的值any*任意类型unknown*类型安全的anyvoid空值undefined没有值或undefinednever没有值不能是任何值object{name:‘孙悟空’}任意的JS对象array[1,2,3]任意JS数组tuple[4,5]元素TS新增类型固定长度数组enumenum{A, B}枚举TS中新增类型 number let decimal: number 6; let hex: number 0xf00d; let binary: number 0b1010; let octal: number 0o744; let big: bigint 100n;boolean let isDone: boolean false;string let color: string blue; color red;let fullName: string Bob Bobbington; let age: number 37; let sentence: string Hello, my name is ${fullName}.Ill be ${age 1} years old next month.;字面量 也可以使用字面量去指定变量的类型通过字面量可以确定变量的取值范围 let color: red | blue | black; let num: 1 | 2 | 3 | 4 | 5;any let d: any 4; d hello; d true;unknown let notSure: unknown 4; notSure hello;void let unusable: void undefined;never function error(message: string): never {throw new Error(message); }object没啥用 let obj: object {};array let list: number[] [1, 2, 3]; let list: Arraynumber [1, 2, 3];tuple let x: [string, number]; x [hello, 10]; enum enum Color {Red,Green,Blue, } let c: Color Color.Green;enum Color {Red 1,Green,Blue, } let c: Color Color.Green;enum Color {Red 1,Green 2,Blue 4, } let c: Color Color.Green;类型断言 有些情况下变量的类型对于我们来说是很明确但是TS编译器却并不清楚此时可以通过类型断言来告诉编译器变量的类型断言有两种形式 第一种 let someValue: unknown this is a string; let strLength: number (someValue as string).length;第二种 let someValue: unknown this is a string; let strLength: number (stringsomeValue).length;3、编译选项 自动编译文件 编译文件时使用 -w 指令后TS编译器会自动监视文件的变化并在文件发生变化时对文件进行重新编译。 示例 tsc xxx.ts -w自动编译整个项目 如果直接使用tsc指令则可以自动将当前项目下的所有ts文件编译为js文件。 但是能直接使用tsc命令的前提时要先在项目根目录下创建一个ts的配置文件 tsconfig.json tsconfig.json是一个JSON文件添加配置文件后只需只需 tsc 命令即可完成对整个项目的编译 配置选项 include 定义希望被编译文件所在的目录 默认值[“**/*”] 示例 include:[src/**/*, tests/**/*]上述示例中所有src目录和tests目录下的文件都会被编译 exclude 定义需要排除在外的目录 默认值[“node_modules”, “bower_components”, “jspm_packages”] 示例 exclude: [./src/hello/**/*]上述示例中src下hello目录下的文件都不会被编译 extends 定义被继承的配置文件 示例 extends: ./configs/base上述示例中当前配置文件中会自动包含config目录下base.json中的所有配置信息 files 指定被编译文件的列表只有需要编译的文件少时才会用到 示例 files: [core.ts,sys.ts,types.ts,scanner.ts,parser.ts,utilities.ts,binder.ts,checker.ts,tsc.ts]列表中的文件都会被TS编译器所编译 compilerOptions 编译选项是配置文件中非常重要也比较复杂的配置选项 在compilerOptions中包含多个子选项用来完成对编译的配置 项目选项 target 设置ts代码编译的目标版本 可选值 ES3默认、ES5、ES6/ES2015、ES7/ES2016、ES2017、ES2018、ES2019、ES2020、ESNext 示例 compilerOptions: {target: ES6 }如上设置我们所编写的ts代码将会被编译为ES6版本的js代码 lib 指定代码运行时所包含的库宿主环境 可选值 ES5、ES6/ES2015、ES7/ES2016、ES2017、ES2018、ES2019、ES2020、ESNext、DOM、WebWorker、ScriptHost … 示例 compilerOptions: {target: ES6,lib: [ES6, DOM],outDir: dist,outFile: dist/aa.js }module 设置编译后代码使用的模块化系统 可选值 CommonJS、UMD、AMD、System、ES2020、ESNext、None 示例 compilerOptions: {module: CommonJS }outDir 编译后文件的所在目录 默认情况下编译后的js文件会和ts文件位于相同的目录设置outDir后可以改变编译后文件的位置 示例 compilerOptions: {outDir: dist }设置后编译后的js文件将会生成到dist目录 outFile 将所有的文件编译为一个js文件 默认会将所有的编写在全局作用域中的代码合并为一个js文件如果module制定了None、System或AMD则会将模块一起合并到文件之中 示例 compilerOptions: {outFile: dist/app.js }rootDir 指定代码的根目录默认情况下编译后文件的目录结构会以最长的公共目录为根目录通过rootDir可以手动指定根目录 示例 compilerOptions: {rootDir: ./src }allowJs 是否对js文件编译 checkJs 是否对js文件进行检查 示例 compilerOptions: {allowJs: true,checkJs: true }removeComments 是否删除注释默认值false noEmit 不对代码进行编译默认值false sourceMap 是否生成sourceMap默认值false 严格检查 strict 启用所有的严格检查默认值为true设置后相当于开启了所有的严格检查 alwaysStrict 总是以严格模式对代码进行编译 noImplicitAny 禁止隐式的any类型 noImplicitThis 禁止类型不明确的this strictBindCallApply 严格检查bind、call和apply的参数列表 strictFunctionTypes 严格检查函数的类型 strictNullChecks 严格的空值检查 strictPropertyInitialization 严格检查属性是否初始化 额外检查 noFallthroughCasesInSwitch 检查switch语句包含正确的break noImplicitReturns 检查函数没有隐式的返回值 noUnusedLocals 检查未使用的局部变量 noUnusedParameters 检查未使用的参数 高级 allowUnreachableCode 检查不可达代码可选值 true忽略不可达代码false不可达代码将引起错误 noEmitOnError 有错误的情况下不进行编译默认值false 4、webpack 通常情况下实际开发中我们都需要使用构建工具对代码进行打包TS同样也可以结合构建工具一起使用下边以webpack为例介绍一下如何结合构建工具使用TS。 步骤 初始化项目 进入项目根目录执行命令 npm init -y 主要作用创建package.json文件 下载构建工具 npm i -D webpack webpack-cli webpack-dev-server typescript ts-loader clean-webpack-plugin 共安装了7个包 webpack 构建工具webpack webpack-cli webpack的命令行工具 webpack-dev-server webpack的开发服务器 typescript ts编译器 ts-loader ts加载器用于在webpack中编译ts文件 html-webpack-plugin webpack中html插件用来自动创建html文件 clean-webpack-plugin webpack中的清除插件每次构建都会先清除目录 根目录下创建webpack的配置文件webpack.config.js const path require(path); const HtmlWebpackPlugin require(html-webpack-plugin); const { CleanWebpackPlugin } require(clean-webpack-plugin);module.exports {optimization:{minimize: false // 关闭代码压缩可选},entry: ./src/index.ts,devtool: inline-source-map,devServer: {contentBase: ./dist},output: {path: path.resolve(__dirname, dist),filename: bundle.js,environment: {arrowFunction: false // 关闭webpack的箭头函数可选}},resolve: {extensions: [.ts, .js]},module: {rules: [{test: /\.ts$/,use: {loader: ts-loader },exclude: /node_modules/}]},plugins: [new CleanWebpackPlugin(),new HtmlWebpackPlugin({title:TS测试}),]}根目录下创建tsconfig.json配置可以根据自己需要 {compilerOptions: {target: ES2015,module: ES2015,strict: true} }修改package.json添加如下配置 {...略...scripts: {test: echo \Error: no test specified\ exit 1,build: webpack,start: webpack serve --open chrome.exe},...略... }在src下创建ts文件并在并命令行执行npm run build对代码进行编译或者执行npm start来启动开发服务器 5、Babel 经过一系列的配置使得TS和webpack已经结合到了一起除了webpack开发中还经常需要结合babel来对代码进行转换以使其可以兼容到更多的浏览器在上述步骤的基础上通过以下步骤再将babel引入到项目中。 安装依赖包 npm i -D babel/core babel/preset-env babel-loader core-js共安装了4个包分别是 babel/core babel的核心工具 babel/preset-env babel的预定义环境 babel-loader babel在webpack中的加载器 core-js core-js用来使老版本的浏览器支持新版ES语法 修改webpack.config.js配置文件 ...略... module: {rules: [{test: /\.ts$/,use: [{loader: babel-loader,options:{presets: [[babel/preset-env,{targets:{chrome: 58,ie: 11},corejs:3,useBuiltIns: usage}]]}},{loader: ts-loader,}],exclude: /node_modules/}] } ...略...如此一来使用ts编译后的文件将会再次被babel处理使得代码可以在大部分浏览器中直接使用可以在配置选项的targets中指定要兼容的浏览器版本。
http://www.zqtcl.cn/news/705814/

相关文章:

  • 网站建立的链接不安全怎么解决学校网站怎样建设
  • 信阳市工程建设信息网站wordpress段子
  • 网站建设和网络搭建是一回事吗长沙网站搭建优化
  • 基础网站怎么做石景山公司
  • 吉他谱网站如何建设wordpress主题字体用隶书
  • 做一个宣传网站的策划书自己怎样推广呢
  • 网站建设布局利于优化火狐搜索引擎
  • 公司给别人做的网站违法吗hexo插件wordpress
  • 网站用什么语言做动易网站迁移
  • 网站备案上传照片几寸织梦模板网站好吗
  • 怎么通过数据库做网站的登录wordpress 注册登录插件
  • 读书网站排名大的网站建设公司好
  • 电商网站建设系统公司 网站建
  • 西安建站费用优化系统是什么意思
  • 做网站认证对网站有什么好处中信建设有限责任公司四川分公司电话
  • 王者做网站福州seo外包公司
  • 网站建设教程百度网盘网站报价明细
  • 网站建设杭州哪家好ui设计学校
  • 门户网站做等级保护测评成都企业建站系统
  • 网站建设需求确认表网站建设需求材料
  • 定制型网站制作价格北京网站建设费用
  • 与女鬼做的网站上海有限公司
  • ytwzjs烟台网站建设c 做的网站又哪些
  • 做网站就是做app中国包装创意设计网
  • 淄博做网站宿迁房产网丫丫找房
  • 苏州专业做网站比较好的公司杭州好的公司网站设计
  • 做百度网站要多少钱帮做网站一般多少钱
  • 云南网站备案查询山西做网站费用
  • 北京建站管理系统开发网站高转化页面
  • 南充网站制作不会做网站能做网络销售吗