javascript - 为什么 Microsoft 的 NodeJS-Typescript 入门项目不使用类型?

标签 javascript node.js typescript

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

例如,at this line而不是

const app = express();

你难道不希望它是这样的吗

const app: ExpressApp = express();

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

我是否遗漏了什么或者 Microsoft 忘记了什么?

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

最佳答案

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

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

当然你可以这样做,但我想即使是微软也认为在各处添加类型不是一个好的做法。它只会让您的代码变得困惑,让 TS 看起来像(无意冒犯)Java 或 C#……但事实并非如此。

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

关于javascript - 为什么 Microsoft 的 NodeJS-Typescript 入门项目不使用类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45951936/

相关文章:

javascript - 我如何替换react-native中TextInput中的字符串

node.js - Express JS - 网络连接丢失

dojo - 如何用Typescript写dojo.declare和继承函数?

typescript - 无法在 typescript 1.7.3 中更改 Number.prototype

node.js - 取消订阅由 of 创建的 Observable

typescript - 无法将 d3 Axis 仅设置为整数

javascript - 有没有办法从 chrome 的存储图像中获取 url?

javascript - 如何使用 JavaScript 递归将一个模式循环到另一个模式中,如果没有手动给出任何参数,它应该在什么时候停止循环?

javascript - Mongoose 日期过滤器

Node.js https API 服务器,但静态文件使用 http