我在搜索时遇到了Microsoft's NodeJS-Typescript Starter Project并发现奇怪的是它实际上并没有使用类型。它基本上看起来就像任何旧的Javascript NodeJS项目一样。
例如,at this line代替
const app = express();
你不希望它像
那样const app: ExpressApp = express();
这只是一个可能的例子。函数,参数等也没有给出类型。
我错过了什么或者微软忘了什么?
答案 0 :(得分:5)
是的,你错过了一些非常重要的东西! :)
您实际上不必告诉编译器app
来自Express
类型,它通过@types/express
推断出类型。由于版本2 TypeScript非常智能并且可以推断出很多类型,因此您不必明确地告诉编译器express()
的结果是什么。
当然你可以做到,但我想微软认为在所有地方添加类型并不是一个好习惯。它只是给你的代码增加了混乱,让TS看起来像(没有冒犯)Java或C#......它不是。
隐式声明类型的唯一原因是,当您未向变量分配任何内容时,或者类型将为any
否则(因为例如缺少输入)。