【发布时间】:2016-12-31 14:07:59
【问题描述】:
我一直在谷歌搜索和搜索,但找不到答案。
我只是对 Typescript 有点熟悉。开始在我的 GraphQL NodeJS 服务器上工作,并希望使用 Typescript 进行更安全、更轻松的编码。
需要做的第一件事是将当前的 JS 版本设置为 ES6,我就这样做了。
此外,我这样设置我的tsconfig:
{
"compilerOptions": {
"module": "es6",
"target": "es6",
"noImplicitAny": false,
"outDir": "./build",
"sourceMap": true
},
"exclude": [
"node_modules"
]
}
我的 index.js
import * as express from 'express';
import * as graphqlHTTP from 'express-graphql';
import {Schema} from './src/schema/Schema';
const PORT = 3000;
const app = express();
const graphqlOption: graphqlHTTP.OptionsObj = {
schema: new Schema().getSchema(),
pretty: true,
graphiql: true
};
app.use('/graphql', graphqlHTTP(graphqlOption));
app.listen(PORT, ()=> {
console.log("listening on PORT 3000");
});
当我运行这个时,我得到了
语法错误:意外的令牌导入
另外,当悬停const graphqlOption: graphqlHTTP.OptionsObj 时,我得到了
当前 JavaScript 版本不支持类型
请帮忙,我做错了什么?
提前致谢。
编辑:
希望清楚的是,当我使用简单的 var express = require('express') 时,我没有得到这个意外的令牌,它会移动到下一行
屏幕截图:
【问题讨论】:
-
@JaromandaX 你能解释一下吗?
-
您是否阅读了该链接上接受的答案?它解释了
SyntaxError: unexpected token import -
到目前为止,这不是 WebStorm 错误(因为错误发生在节点实际执行期间)。也许它需要先以某种方式转译? (抱歉,根本不是 JS 人,所以这里帮不上忙)
-
是的,如果 Typescript 可以编译成 es5,那么编译成 es6 就是一个错误。目前有零个支持所有 es6 的 javascript 解释器。人们要么对仅使用箭头函数等受支持的功能很挑剔,要么使用 es5 到 6 编译器。
标签: javascript node.js typescript ecmascript-6 webstorm