使用ts-node就可以直接运行ts,但是vscode控制台还是不如大chrome的好用呀!所以想办法用最简单的办法让ts间接地跑在浏览器里进行调试!
浏览器是不能直接运行ts的,所以需要转换到js。但是js又有一堆不同的规范。。
ts可以转换的目标规范有很多,比如es6,commonjs,amd等等。
但是转换到es6时,会有浏览器无法兼容的import关键字,还要再用厚重的babel转。放弃!
转换到commonjs,会有exports等也无法被浏览器识别。放弃!
所以选择amd模块,使用requirejs加载就可以成功运行!
下面是tsconfig配置
{
"compilerOptions": {
"outDir": "./dist/",
"outFile": "./dist/index.js",
"module": "amd",
"target": "es5",
"allowJs": true,
"removeComments": true
}
}
测试代码(部分)
/*
* @Author: AK-12
* @Date: 2018-12-03 23:25:19
* @Last Modified by: AK-12
* @Last Modified time: 2018-12-04 16:36:07
*/
import { IAction } from './types/Types'
import * as Actions from './dev/Actions'
import { $Store } from './dev/Build'
// 监听回调
let listener = state => console.log(state)
// 注册监听回调
let unsubscribe = $Store.subscribe(listener)
// 反注册监听
// unsubscribe()
// 发射action
$Store.dispatch<IAction<Actions.Title>>({
type: 'reduce_title',
value: 'hello title redux'
})
$Store.dispatch<IAction<Actions.Infor>>({
type: 'reduce_name',
value: 'hello name redux'
})
$Store.dispatch<IAction<Actions.Infor>>({
type: 'reduce_message_p2',
value: 'hello p2 redux'
})
使用了redux,对测试来说足够复杂了吧
看看chrome控制台
完美运行!