方法步骤如下:
1、工具需求
(1)TypeScript
2、利用TypeScript开发微信小程序需要4个核心文件如下
(1)App:代码整个应用程序的抽象对象,可以设置全局的方法和变量
(2)Page: 页面抽象对象,承载页面业务逻辑
(3)WXML: 页面的结构,相当于html
(4)JSON: 配置文件
(5)WXSS: 页面的样式,相当于css
3、然后由于目前腾讯没有小程序的TypeScript版本的API,所以OneCode team针对目前腾讯放出的所有的小程序JavaScript API开发了一个TypeScript版本的API类型定义文件 wxAPI.d.ts,如图。
(1)最后只需要在程序中引用该文件,如果是使用Visual Studio来开发的话,就能有代码提示了
需要先自行安装npm
手动创建一个如下结构文件目录(nodejs工程)用来运行electron,如下图:
命令行模式下,切换到工程根目录(这里就是test目录)
安装typescript:
安装electron:
自行建立上图中的各个文件 ,部分文件内容如下:
tsconfig.json
tsconfig更多具体配置参考官方文档:
https://www.tslang.cn/docs/handbook/compiler-options.html
package.json
"main": "./build/app.js" : 表示程序主入口是build目录下的app.js, app.js文件由是由tsc编译src/app.ts得到
"prestart":"tsc" : 表示在执行npm start之前先执行tsc进行当前工程目录的ts文件编译工作.
更多具体配置参考官方文档:
https://docs.npmjs.com/files/package.json
views/css目录和views/js目录 是具体业务逻辑:
index.html:
app.ts:
ClassA.ts:
在命令行模式中执行
显示结果:
TypeScript项目和tsconfig.json首先安装TypeScript编译器
npm i -g typescript
进入项目目录,新建一个 hello.ts
function sayHello(name: string) {
return 'Hello, ' + name
}
let myName = 'Cheng Wang'
console.log(sayHello(myName))
然后执行
tsc hello.ts
编译器会生成 hello.js
function sayHello(name) {
return 'Hello, ' + name
}
var myName = 'Cheng Wang'
console.log(sayHello(myName))
为了方便编译器和编辑器识别TypeScript项目,TypeScript约定了tsconfig.json文件来存储项目配置,如果运行 tsc 时不指定输入文件,编译器则会查找项目目录中的这个文件,如果找不到则会依次向父级目录查找。比如这样:
{
"compilerOptions": {
"outFile": "dist/app.js",
"sourceMap": true
},
"files": [
"src/app.ts"
]
}
直接运行 tsc ,会自动把 src/app.ts 编译到 dist/app.js 。
关于这个配置文件的更多选项,可以看 官方文档 。
使用模块
TypeScript中,模块的使用方法与ES6一致。
src/modules/utilities.ts :
function getUrlParam(key: string) {
const REG_PATTERN = new RegExp('(^|&)' + key + '=([^&]*)(&|$)', 'i')
let result: string[] = location.search.substr(1).match(REG_PATTERN)
if (result !== null) {
return decodeURIComponent(result[2])
} else {
return null
}
}
export { getUrlParam }
src/app.ts :
import { getUrlParam } from './modules/utilities'
let deviceType: string = getUrlParam('deviceType')
console.log(deviceType)
编译后的app.js(TypeScript编译器在输出单个文件时,只能使用AMD或System模块规范):
define("modules/utilities", ["require", "exports"], function (require, exports) {
"use strict"
function getUrlParam(key) {
var REG_PATTERN = new RegExp('(^|&)' + key + '=([^&]*)(&|$)', 'i')
var result = location.search.substr(1).match(REG_PATTERN)
if (result !== null) {
return decodeURIComponent(result[2])
}
else {
return null
}
}
exports.getUrlParam = getUrlParam
})
define("app", ["require", "exports", "modules/utilities"], function (require, exports, utilities_1) {
"use strict"
var deviceType = utilities_1.getUrlParam('deviceType')
console.log(deviceType)
})
使用NPM库
我们开发JS程序的时候,要用到NPM上的第三方的库,比如jQuery、Lodash等,但是绝大多数库都是用JS写的,没有类型提示,我们也不能在在代码中将这些库作为模块引入。
比如我们需要在项目中使用Lodash:
npm i --save lodash
然后在代码中引入:
import * as _ from 'lodash'
console.log(_.camelCase('helloworld'))
运行 tsc 则报错:
src/app.ts(1,20): error TS2307: Cannot find module 'lodash'.
如果想在TypeScript代码中直接使用npm上的JS库,需要借助Typings这个工具。
Typings也是一个包管理器,它管理的是JS代码“定义文件”,用Typings安装相应的定义文件后,编辑器和编译器就可以去node_modules目录中找到相应的JS库,并编译到最终的JS代码中。
先安装Typings工具:
npm i -g typings
然后安装Lodash的定义文件:
typings install --save lodash
Typings会去NPM、Bower上寻找库的作者加的定义文件,但是有的库如jQuery并没有官方的定义文件,则需要从社区维护的 DefinitelyTyped 目录下安装:
typings install --save --ambient jquery
然后再tsconfig.json中的files配置中加入一条:
"files": [
"src/app.ts",
"typings/main.d.ts"
]
此时编译就不会提示找不到模块了。
安装好定义文件之后,如果使用Visual Studio Code等对TypeScript支持较好的编辑器,则会提供更加强大的代码提示功能。
使用Webpack构建
TypeScript编译器支持很多模块组织规范,如ES6、commonJS、AMD等,但是如果想要将多个ts文件打包成一个文件,TypeScript只支持AMD和System,对于浏览器应用来说,还需要引入第三方的模块加载器。如果使用Webpack配合TypeScript的loader,则可以方便地构建浏览器可以运行的JS代码。
首先安装Webpack和ts-loader:
npm i webpack -g
npm i ts-loader --save-dev
然后配置项目目录中的webpack.config.js:
module.exports = {
entry: './src/app.ts',
output: {
filename: 'app.js',
path: './dist'
},
resolve: {
extensions: ['', '.webpack.js', '.web.js', '.ts', '.js']
},
module: {
loaders: [
{ test: //.ts$/, loader: 'ts-loader' }
]
}
}
然后就可以通过运行 webpack 来构建了,构建生成的代码自带了webpack的模块加载器,可以直接在浏览器中运行。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)