Typescript | ts转换到AMD在浏览器中直接运行

使用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控制台

完美运行!

猜你喜欢

转载自blog.csdn.net/u011607490/article/details/84867161