为什么Microsoft的NodeJS-Typescript启动项目不使用类型?

Cod*_*ein 0 javascript node.js typescript

我在搜索时遇到了微软的NodeJS-Typescript Starter项目,发现它实际上并没有使用类型,这很奇怪.它基本上看起来与任何旧的Javascript NodeJS项目完全一样.

例如,在此行而不是

const app = express();
Run Code Online (Sandbox Code Playgroud)

你不期望它会是这样的吗?

const app: ExpressApp = express();
Run Code Online (Sandbox Code Playgroud)

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

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

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

Seb*_*ald 6

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

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

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

隐式声明类型的唯一原因是,当您没有为您的变量赋值时,或者其他类型any(因为例如缺少输入).