簡體   English   中英

如何在JavaScript中包含打字稿

[英]How to include typescript in javascript

我有一個node.js和server.js

var http = require('http');
var port = process.env.port || 1337;
http.createServer(function (req, res) {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end('Hello World\n');
}).listen(port);

說我有打字稿t.ts

var a = 123;
console.log(a);

我有兩個問題:

  1. 是否可以從server.js調用t.ts (假設我必須使用server.js)?

  2. 是否可以將server.js轉換為server.ts (成為打字稿)?

通常,如果您的腳本導出了類或模塊,則應該可行。 將其功能包裝在一個功能中,然后將其導出到TS中。

export function doThing() {
  var a = 123;
}

// server.js:
var doThing = require('t');

doThing();

TypeScript主要使用JavaScript語法,因此您通常可以將文件重命名為.ts,並且大多數都可以使用,盡管有一些東西以開頭是未知類型。 您可能需要在require()行中用import替換關鍵字var 我認為沒有“自動轉換”程序。

廣告1)否,除非您t.ts TypeScript編譯器將t.js編譯為t.ts ,否則節點無法處理TypeScript腳本。

廣告2)打字稿將功能添加到JavaScript和在許多情況下,你可以重命名file.jsfile.ts ,你將擁有有效的打字稿代碼,但也有當你會得到一個錯誤的情況下-例如:

  • 變量重用

     var n = 5; // TypeScript compiler infers that 'n' is a number n = "a"; // Error: "a" is not a number! 
  • 如果您以瀏覽器為目標並且使用window對象,則可能會遇到以下錯誤:

     var cropper = window.cropper; // throws error: Property 'cropper' does not exist on type 'Window' 

AFAIK沒有轉換工具,因為前面的示例表明該工具將難以解決錯誤。 但是,有些人會提供遷移 指南

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM