打字稿中防止"使用严格"?

sin*_*095 8 typescript

尝试在iOS设备上加载我的应用时出现以下错误;

VMundefined bundle.js:1722 SyntaxError: Unexpected keyword 'const'. Const declarations are not supported in strict mode.

这个错误发生在iPhone 5s/6s +我试过的几个不同的iPad上(不记得哪个).它也没有在HTC上工作.我试过的任何三星/ Windows手机都没有出现此错误.它也适用于台式机.(我还没试过在Mac上运行它).

这是bundle.js中的那行代码;

{}],12:[function(require,module,exports){
"use strict";
const guage_1 = require("./charts/kpi/guage");
const stacked_1 = require("./charts/area/stacked");
const barChart_1 = require("./charts/compare/barChart");
Run Code Online (Sandbox Code Playgroud)

当我从bundle.js中删除"use strict"时,它可以在所有设备上正常工作.只是想知道是否有办法确保打字稿不能使用"use strict"编译或修复iOS设备的问题?

这是我编译的gulpfile(按照typescripts 网站上发布的指南)

var gulp = require('gulp'),
    sourcemaps = require('gulp-sourcemaps'),
    source = require('vinyl-source-stream'),
    tsify = require('tsify'),
    browserSync = require('browser-sync'),
    postcss = require('gulp-postcss'),
    uglify = require('gulp-uglify'),
    concat = require('gulp-concat'),
    rename = require('gulp-rename'),
    watchify = require("watchify"),
    browserify = require('browserify'),
    gutil = require("gulp-util"),
    buffer = require('vinyl-buffer'),
    processorArray = [
       ...
    ],
    watchedBrowserify = watchify(browserify({
        basedir: '.',
        debug: true,
        entries: ['src/main.ts'],
        cache: {},
        packageCache: {}
    }).plugin(tsify)),
    devPlugin = './src/plugins/';

function bundle() {
    return watchedBrowserify
        .bundle()
        .pipe(source('bundle.js'))
        .pipe(gulp.dest("dist"));
}

gulp.task('default', ['styles',  'browser-sync', 'watch'], bundle, function() {

    return browserify({
            basedir: '.',
            debug: true,
            entries: ['src/main.ts'],
            cache: {},
            packageCache: {}
        })
        .plugin(tsify)
        .transform("babelify")
        .bundle()
        .pipe(source('bundle.js'))
        .pipe(buffer())
        .pipe(sourcemaps.init({
            loadMaps: true
        }))
        .pipe(sourcemaps.write('./'))
        .pipe(gulp.dest('dist'))


});

watchedBrowserify.on("update", bundle);
watchedBrowserify.on("log", gutil.log);
Run Code Online (Sandbox Code Playgroud)

Dav*_*ret 16

您可以通过在tsconfig.json中使用--noImplicitUseStrict 编译器选项 -add "noImplicitUseStrict": true进行编译实现."compilerOptions"

这样做会阻止编译器发出"use strict".