TypeScript ile yapılmış JavaScript dosyalarındaki require ifadesini kaldır


Bir web sitesi geliştiriyorum ve TypeScript kullanıyorum.

Ben tsc derleyicisini kullanıyorum ve tüm JavaScript’im doğru şekilde derleniyor, ancak TypeScript’imde bir import ifadesi kullanırsam, bu JavaScript dosyalarına kullanılabilir olmayan bir require ifadesi olarak derleniyor.

Bu sorunu düzeltmek için browserify gibi bir şey kullanabileceğimin farkındayım, ancak bu, bir require ifadesi gördüğünde diğer JavaScript dosyalarının kodunu dahil ediyor. Her JavaScript dosyasını sadece <script src="..."></script> ile HTML'ime eklemeyi tercih ederim.

TypeScript'in derlenmiş JavaScript kodunda require ifadeleri üretmesini nasıl önleyebilirim?

İşte tsconfig.json dosyamın içeriği:

{
    "compilerOptions": {
        "target": "es6",
        "module": "commonjs",
        "lib": [
            "es6",
            "dom"
        ],
        "sourceMap": true,
        "outDir": "./typescript/compiled",
        "removeComments": true,
        "noImplicitAny": true,
        "noImplicitThis": true,
        "strictNullChecks": true,
        //"noEmit": true,
        "forceConsistentCasingInFileNames": true
    },
    "include": [
        "./typescript/**/*.ts"
    ]
}

main.ts

import { Helper } from "./helper";

var helper = new Helper();

helper.ts

export class Helper {
    // ...
}

main.js

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const helper_1 = require("./helper");
var helper = new helper_1.Helper();
//# sourceMappingURL=main.js.map

Cevap #1

Eğer JavaScript uygulamanızda modüller kullanmıyorsanız, TypeScript dosyanızda import bile kullanmazsınız. Çünkü import kullanmak, o dosyayı kodunuza dahil etmeniz anlamına gelir.

Javascript dosyasını ayrı olarak istiyorsanız, kullanın

/// <reference path=".. definition you want to refer ..." />

yerine.

GÜNCELLENDİ

TypeScript 1.5'ten bu yana eğer dosyalarınız

"include": [
        "./typescript/**/*.ts"
    ]

Artık reference ... yapmanıza gerek yok.