如何将现有节点应用程序转换为打字稿?

时间:2016-04-08 16:05:40

标签: node.js typescript visual-studio-code

我有一个正常运行的节点项目。它是用javascript编写的。该应用程序非常简单(大多数情况下,它只是托管一个静态文件夹)。它托管的一些网页成功地使用了用于客户端javascript的typescript。现在我正在尝试将我的节点转换为typescript(我使用Visual Studio Code作为IDE),并且我有很多奇怪的错误,并且很难找出我做错了什么错误消息不会在任何好的搜索中出现。

我从明确键入的.d.ts文件中下载并将其放入typescript文件夹,然后将index.js文件重命名为index.ts,并在{{{}}中添加了对它的引用1}}文件,以便它编译新的打字稿文件。然后我将打字稿内容添加到index.js

的顶部
tasks.json

当我这样做时,我收到了这些错误消息

///<reference path='ts/express.d.ts' />

import * as express from "express";
var app = express();
var path = require('path');

C:/src/www/ts/node.d.ts (128,29): Expected ';' C:/src/www/ts/mime.d.ts (17,12): Expected identifer after 'import' C:/src/www/ts/mime.d.ts (27,12): Expected identifer after 'import' C:/src/www/ts/mime.d.ts (3,8): Expected identifer after 'import' 文件有问题吗?

我的打字稿不如编写.d.ts文件的人好,我敢肯定,这条线看起来不对:

d.ts

但是生成isBuffer(obj: any): obj is Buffer; 错误的行,但我真的不相信,因为其他三个错误消息出现在Expected ';'中,其中不包含单词{{1} }。

所以,我以为我会从小做起,并创建一个单独的JS文件。它只包含:

mime.d.ts

这会产生相同的错误消息。

import

我做错了什么?

- 更新 -

这是我的tsconfig

import * as express from "express";

1 个答案:

答案 0 :(得分:1)

你正在使用的是typescript 0.8.3,这是非常过时的。它可能是(或不是)解决方案,但它是保持最新的良好开端。我使用Atom作为我的IDE,所以我用npm安装了typescript,它总是解析为最新版本。不了解VS Code。

关于.tsconfig,理想情况下,您应该使用typings来管理.d.ts个文件。它将使用单个入口点(称为main.d.ts)在单个目录中下载和组织所有打字定义。然后,此文件和所有其他.ts文件将列在files文件的.tsconfig属性中,以便编译器知道要使用的文件。

相关问题