1. ts2php
TypeScript to PHP Transpiler
ts2php
Package: ts2php
Created by: searchfe
Last modified: Sun, 22 May 2022 08:08:41 GMT
Version: 0.30.3
License: MIT
Downloads: 141
Repository: https://github.com/searchfe/ts2php

Install

npm install ts2php
yarn add ts2php

ts2php

under development

TypeScript 转 PHP

A Compiler which can compile TypeScript to PHP.

Language
Build Status
npm package
npm downloads
semantic-release

Usage

compiler

 import {compile} from 'ts2php';

const result = compile(filePath, options);

runtime

部分功能依赖一个 PHP 的类库,需要在 PHP 工程中引入

Some features are implemented by a PHP helper class, which need to be included in your PHP
code.

 require_once("/path/to/ts2php/dist/runtime/Ts2Php_Helper.php");

CLI

Quick Start:

 $ npm i -g ts2php
$ ts2php ./a.ts                   # 编译输出到 stdout

使用配置并输出到文件:

 $ cat config.js
module.exports = {
  emitHeader: false
};
$ ts2php -c config.js src/ -o output/

更多选项:

 $ ts2php --show-diagnostics       # 输出诊断信息
$ ts2php --emit-header            # 输出头部信息
$ ts2php -h                       # 更多功能请查看帮助

update ts2php version

Same TS code with different version of ts2php may result to different PHP code. When updating the version of ts2php, we should check the result PHP code manually. To simplify this process, we recommend to use ts2php-diff-checker. Specify two version of ts2php, and some source TS code, ts2php-diff-checker will generate diff info directly.

 ts2php-check <pattern> <old-version> <new-version> [destination]

Features

Javascript Syntax

For more, see feature test markdowns: Javascript Syntax

Core JavaScript API

  • parseInt 只接收一个参数
  • parseFloat
  • encodeURIComponent
  • decodeURIComponent
  • encodeURI
  • __dirname
  • __filename
  • Date
    • Date.now
    • Date.prototype.getTime
    • Date.prototype.getDate
    • Date.prototype.getDay
    • Date.prototype.getFullYear
    • Date.prototype.getHours
    • Date.prototype.getMinutes
    • Date.prototype.getMonth
    • Date.prototype.getSeconds
    • Date.prototype.setDate
    • Date.prototype.setFullYear
    • Date.prototype.setHours
    • Date.prototype.setMinutes
    • Date.prototype.setMonth
    • Date.prototype.setSeconds
    • Date.prototype.setTime
  • Object
    • Object.assign
    • Object.keys
    • Object.values
    • Object.freeze
    • Object.prototype.hasOwnProperty
  • JSON
    • JSON.stringify 只接收一个参数
    • JSON.parse 只接收一个参数
  • console
    • console.log
    • console.info 转成 var_dump
    • console.error
  • String
    • String.prototype.replace 第二个参数只支持 string,不支持 Function
    • String.prototype.trim
    • String.prototype.trimRight
    • String.prototype.trimLeft
    • String.prototype.toUpperCase
    • String.prototype.toLowerCase
    • String.prototype.split
    • String.prototype.indexOf
    • String.prototype.substring
    • String.prototype.repeat
    • String.prototype.startsWidth
    • String.prototype.endsWidth
    • String.prototype.includes
    • String.prototype.padStart
    • String.prototype.match 只支持正则和字符串匹配
  • Array
    • Array.isArray
    • Array.prototype.length
    • Array.prototype.filter 回调函数只接收第一个参数
    • Array.prototype.push
    • Array.prototype.pop
    • Array.prototype.shift
    • Array.prototype.unshift
    • Array.prototype.concat
    • Array.prototype.reverse
    • Array.prototype.splice
    • Array.prototype.reverse
    • Array.prototype.map
    • Array.prototype.forEach
    • Array.prototype.indexOf
    • Array.prototype.join
    • Array.prototype.some
    • Array.prototype.every
    • Array.prototype.find
    • Array.prototype.findIndex
    • Array.prototype.sort
  • Number
    • Number.isInterger
    • Number.prototype.toFixed
    • Number.prototype.toString
  • Math
    • Math.abs
    • Math.acos
    • Math.acosh
    • Math.asin
    • Math.asinh
    • Math.atan
    • Math.atanh
    • Math.atan2
    • Math.cbrt
    • Math.ceil
    • Math.clz32
    • Math.cos
    • Math.cosh
    • Math.exp
    • Math.expm1
    • Math.floor
    • Math.hypot
    • Math.log
    • Math.log1p
    • Math.log10
    • Math.max
    • Math.min
    • Math.pow
    • Math.random
    • Math.round
    • Math.sin
    • Math.sinh
    • Math.sqrt
    • Math.tan
    • Math.tanh

Thanks to

Based on Typescript compiler

Dependencies

RELATED POST

Enhancing Vue.js Development: Harnessing the Potential of Vue-Loader

Enhancing Vue.js Development: Harnessing the Potential of Vue-Loader

Simplify Data Validation in Vue.js: A Step-by-Step Guide to Using Regex

Simplify Data Validation in Vue.js: A Step-by-Step Guide to Using Regex

Troubleshooting Made Easy: Common Issues and Solutions with vue-loader Without vue-cli

Troubleshooting Made Easy: Common Issues and Solutions with vue-loader Without vue-cli

Optimizing Webpack 4 with Vue CLI 3: Disabling the Cache-Loader

Optimizing Webpack 4 with Vue CLI 3: Disabling the Cache-Loader

Step-by-Step Guide: How to Add a Function to Your Vuex Plugin

Step-by-Step Guide: How to Add a Function to Your Vuex Plugin