如何从gulpfile.js调用typescript方法

如何从gulpfile.js调用typescript方法,typescript,gulp,Typescript,Gulp,我有一个项目,我的gulpfile.js相当复杂,因此我想将一些代码分解成typescript 如何从gulpfile.js调用typescript代码?从一开始可能更容易理解,但我就是这样争论的: config.ts export function getString() : string { return "getString() worked!"; } class Animal{ legs : number = 4; Sound():string{return

我有一个项目,我的
gulpfile.js
相当复杂,因此我想将一些代码分解成
typescript


如何从gulpfile.js调用typescript代码?

从一开始可能更容易理解,但我就是这样争论的:

config.ts

export function getString() : string
{  
    return "getString() worked!";
}

class Animal{
    legs : number = 4;
    Sound():string{return "Woof!"}
}

export var dog = new Animal();
var gulp = require('gulp')
var config = require("./src/config.js");

gulp.task('default', function () {
    console.log(config.getString());
    console.log(config.dog.Sound());
    console.log(config.dog.legs);
});
tsconfig.json

{
    "include": [
        "./src/**/*.ts"
    ],
    "exclude": [
        "node_modules",
        "**/*.spec.ts"
    ],
    "compilerOptions": {
        "noImplicitAny": true,
        "target": "es5",
        "module": "commonjs",
        "outDir" :"./src",
    }
}
gulpfile.js

export function getString() : string
{  
    return "getString() worked!";
}

class Animal{
    legs : number = 4;
    Sound():string{return "Woof!"}
}

export var dog = new Animal();
var gulp = require('gulp')
var config = require("./src/config.js");

gulp.task('default', function () {
    console.log(config.getString());
    console.log(config.dog.Sound());
    console.log(config.dog.legs);
});
输出

[21:03:43] Starting 'default'...
getString() worked!
Woof!
4
注释

export function getString() : string
{  
    return "getString() worked!";
}

class Animal{
    legs : number = 4;
    Sound():string{return "Woof!"}
}

export var dog = new Animal();
var gulp = require('gulp')
var config = require("./src/config.js");

gulp.task('default', function () {
    console.log(config.getString());
    console.log(config.dog.Sound());
    console.log(config.dog.legs);
});
  • commonjs
    模块设置是关键
  • gulp文件正在编译*.ts(此处未显示),这意味着当前gulp总是加载一个太旧的tsc版本。也许使用transfile语法会更好

我们可以看看typescript背后的开发团队是如何做到这一点的:

  • 这里是-它的打字稿-完美

  • 这里是-注意用法-这是解决方案的关键

  • 基本上就是这样