我有时会看到声明了变量类型的Node代码,例如:
const st: string = "hello world";
哪个版本的节点支持此功能?我在哪里可以找到关于此的文档(这是“静态类型”对吗?)? 我可以在方法变量中使用它吗?
答案 0 :(得分:1)
那不是JavaScript,而是TypeScript;请参阅文档链接。 TypeScript基本上是JavaScript,其上覆盖有类型系统。然后由TypeScript编译器将其编译为JavaScript。 (编译器也倾向于支持新的JavaScript功能,然后才能像J8中那样在JavaScript引擎中本地支持。例如,TypeScript的编译器目前支持public class fields,它们不是。在JavaScript规范中,但很可能在某个阶段。)
我可以在方法变量中使用它吗?
是的,绝对:
function foo() : void {
let a : number = 42;
let q : string = "Life, the Universe, and Everything";
// ...
}
如果您尝试将"glarb"
分配给a
,则TypeScript编译器会给您一个错误,因为a
被声明为number
。类似地,尝试从函数返回某些内容会引发错误,因为该函数被声明为具有void
返回类型(不会返回任何内容)。
编译为:
function foo() {
var a = 42;
var q = "Life, the Universe, and Everything";
// ...
}
...可以在任何JavaScript环境中运行。