首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类型记录隐式类型(不是隐式类型)

类型记录隐式类型(不是隐式类型)
EN

Stack Overflow用户
提问于 2019-12-11 12:23:04
回答 2查看 330关注 0票数 0

在我参与的一个打字稿项目中,我无法再接触到它,我记得我似乎能够做到以下几点:

代码语言:javascript
复制
const fn = string => console.log(string)

作为打字稿的新手,它似乎相当于写这篇文章:

代码语言:javascript
复制
const fn = (string:string) => console.log(string)

基本上,在我看来,如果我以本机类型命名函数中的变量,那么它似乎隐式地被键入为该类型,而不是any

当时我对打字很陌生,所以完全有可能发生了其他事情,我只是曲解了情况。

现在我正在尝试设置我自己的类型记录项目,我想将它配置为允许再次使用该功能。我不知道该怎么做,或者我想的是不是一个真正的打字功能。

这是打字稿中的一个真实特征吗?

如果是的话,我如何配置类型记录来做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-11 14:05:35

基本上,在我看来,如果我以本机类型命名函数中的变量,那么它似乎隐式地被键入为该类型,而不是any类型。

这是完全错误的。打字本没有这样的功能。如果你不提一种类型,打字本就会简单地认为它是any。在下面的代码中也发生了同样的事情。

代码语言:javascript
复制
const fn = string => console.log(string)

string变量为any类型。如果你有一个现代的IDE,它会告诉你同样的事情,如果你悬停在它上面。

要给它一个类型,您必须特别提到一个类型,就像在后面添加的代码中一样。

代码语言:javascript
复制
const fn = (string:string) => console.log(string)

这是打字稿中的一个真实特征吗? 如果是的话,我如何配置类型记录来做到这一点?

事实并非如此,因此您无法将其配置为正常的工作方式。

票数 3
EN

Stack Overflow用户

发布于 2019-12-11 14:19:21

与您所描述的最接近的特性是上下文类型类型推断。你可以在打字本的文档以获取更多细节上查到。

对于您已经给出的示例,console.log的标准(节点)定义期望message param通过any类型。这就是为什么在这种情况下,您的string参数推断为any类型。

代码语言:javascript
复制
// src: node_modules/@types/node/globals.d.ts

interface Console {

    // ...

    /**
     * Prints to `stdout` with newline
     */
     log(message?: any, ...optionalParams: any[]): void;

    // ...
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59285759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档