“空”作为打字稿中的参数是什么意思?

时间:2019-01-20 19:17:08

标签: typescript

我知道打字稿上的'void'类型会做什么。但是我遇到了以下代码。

[
   { id: "2", option: { bound_id: "12" }}
   { id: "12", option: { bound_id: "2" }}
]

我在打字稿文档https://www.typescriptlang.org/docs/handbook/functions.html

上也看到了相同的内容

键入“ void”是什么 功能参数?

2 个答案:

答案 0 :(得分:2)

void作为this类型很有用,因为它保证您不会使用this参数。

function f(this: void, ...) {
  // Can't use `this` in here.
}

在其他参数上,它...没有那么有用。如果您关闭了--strictNullChecks,则仍然可以通过传递nullundefined作为void参数来调用该函数。如果您不这样做,则因为void无人居住,您甚至无法调用该函数。

如果您以前从未见过this作为函数参数编写,建议您阅读本文档的this section(完全是双关语)。

答案 1 :(得分:0)

简而言之,void用于表示缺乏价值。您可以将其视为另一种说undefined的方式。

const foo: void = undefined;

void用作返回类型时,表明该函数将不会显式返回任何内容。

function log(argument: any): void {
  console.log(argument);
}

尽管在运行时log隐式地返回了undefined,但TypeScript在voidundefined之间进行了概念上的区分。

function log(argument: any): void {
    console.log(argument);
}

const foo: undefined = log('Hello'); // Error — "void" is not "undefined"

this用作void类型时,表示在函数调用期间使用的this将是默认的执行上下文-全局范围。在某些情况下有帮助。创建scope-safe constructors是其中之一。