繁体   English   中英

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

[英]How do I convert my existing node application to typescript?

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

我从绝对类型下载了.d.ts文件,并将其放入.d.ts文件夹中,然后将index.js文件重命名为index.ts ,并在tasks.json文件中添加了对它的引用,以便可以编译新的打字稿文件。 然后,将打字稿内容添加到index.js的顶部

///<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 ';' 错误,但我并不十分相信,因为其他三个错误消息出现在mime.d.ts ,其中不包含单词import

因此,我以为我会做得较小,并创建了一个单独的JS文件。 它只包含:

import * as express from "express";

并生成相同的错误消息。

C:/src/www/simple.ts (1,8): Expected identifer after 'import'

我究竟做错了什么?

- 更新 -

这是我的tsconfig

{ "compilerOptions": {
    "target": "es5",
    "module": "amd",
    "sourceMap": true    
}}

您使用的打字稿0.8.3非常过时。 这可能是(也可能不是)解决方案,但这是使它保持最新状态的一个好的开始。 我将Atom用作我的IDE,所以我在npm上安装了打字稿,该打字稿始终解析为最新版本。 不了解VS Code。

关于您的.tsconfig ,理想情况下,你应该使用分型管理.d.ts文件。 它将在具有单个入口点(称为main.d.ts )的单个目录中下载和组织所有类型定义。 然后,此文件和所有其他.ts文件会列在.tsconfig文件的files属性上,因此编译器知道要使用哪些文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM