gpt4 book ai didi

javascript - 为什么我的 typescript 文件无法使用 gulp typescript 正确生成为 js?

转载 作者:行者123 更新时间:2023-12-03 05:05:26 26 4
gpt4 key购买 nike

我正在尝试使用 gulp-typescript 将 typescript 文件转换为 js。

好像没翻译。

吞下文件:

var ts = require('gulp-typescript');
gulp.task('tsToJs', function () {
return gulp.src('./config.ts')
.pipe(ts({
moduleResolution: 'node',
target:'es5',
allowJs:true
//out: 'config.js'
}))
.pipe(gulp.dest('./'));
});

配置.ts:

class Config{
env:{
readonly live: '.co.uk',
readonly dev: '.dev.co.uk',
readonly qa: 'qa.co.uk'
};
};
export = new Config;

似乎被转换成这样:(类内数据丢失了?)conf.js:

"use strict";
var Config = (function () {
function Config() {
}
return Config;
}());
;
module.exports = new Config;

最佳答案

您将 env 属性声明为匿名类型,而不是使用具有属性的对象对其进行初始化。将 : 更改为 =:

class Config{
env = {
// ^-------------------------------------- here
readonly live: '.co.uk',
readonly dev: '.dev.co.uk',
readonly qa: 'qa.co.uk'
};
}

但请注意,the playground says你不能在那里使用readonly。我在 TypeScript 手册中找不到任何在简单对象属性上使用 readonly 的示例。 (尽管从概念上讲这是合理的。)您可能需要更守旧一点:

class Config{
env = Object.create(Object.prototype, {
live: {value: '.co.uk', enumerable: true, configurable: true},
dev: {value: '.dev.co.uk', enumerable: true, configurable: true},
qa: {value: 'qa.co.uk', enumerable: true, configurable: true}
});
}

(当然,如果您不希望属性可枚举或可配置,则将其保留。它们将不可写,因为所有这些标志的默认值为 false .)

<小时/>

旁注:由于这是一个声明,而不是表达式,因此后面没有 ;; 是语句终止符;声明是自动终止的。

关于javascript - 为什么我的 typescript 文件无法使用 gulp typescript 正确生成为 js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42021293/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com