我遇到了Microsoft's NodeJS-Typescript Starter Project在四处搜索时发现很奇怪它实际上并没有使用类型。它基本上看起来和任何旧的 Javascript NodeJS 项目一模一样。
例如,at this line而不是
const app = express();
你难道不希望它是这样的吗
const app: ExpressApp = express();
这只是一个可能的例子。也没有为函数、参数等给出类型。
我是否遗漏了什么或者 Microsoft 忘记了什么?
最佳答案
是的,你错过了一些非常重要的东西! :)
您实际上不必告诉编译器 app
来自类型 Express
,它通过 @types/express
推断类型。由于 TypeScript 2 版变得非常智能,可以推断很多类型,因此您不必显式告诉编译器 express()
的结果是什么。
当然你可以这样做,但我想即使是微软也认为在各处添加类型不是一个好的做法。它只会让您的代码变得困惑,让 TS 看起来像(无意冒犯)Java 或 C#……但事实并非如此。
隐式声明类型的唯一原因是,当您没有为变量分配任何内容时,否则类型将为any
(例如,因为缺少类型)。
关于javascript - 为什么 Microsoft 的 NodeJS-Typescript 入门项目不使用类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45951936/