为什么微软的NodeJS-Typescript启动项目没有使用类型?

时间:2017-08-30 04:30:30

标签: javascript node.js typescript

我在搜索时遇到了Microsoft's NodeJS-Typescript Starter Project并发现奇怪的是它实际上并没有使用类型。它基本上看起来就像任何旧的Javascript NodeJS项目一样。

例如,at this line代替

const app = express();

你不希望它像

那样
const app: ExpressApp = express();

这只是一个可能的例子。函数,参数等也没有给出类型。

我错过了什么或者微软忘了什么?

链接https://github.com/Microsoft/TypeScript-Node-Starter

1 个答案:

答案 0 :(得分:5)

是的,你错过了一些非常重要的东西! :)

您实际上不必告诉编译器app来自Express类型,它通过@types/express推断出类型。由于版本2 TypeScript非常智能并且可以推断出很多类型,因此您不必明确地告诉编译器express()的结果是什么。

当然你可以做到,但我想微软认为在所有地方添加类型并不是一个好习惯。它只是给你的代码增加了混乱,让TS看起来像(没有冒犯)Java或C#......它不是。

隐式声明类型的唯一原因是,当您未向变量分配任何内容时,或者类型将为any否则(因为例如缺少输入)。