TypeScript中函数或变量的约定是什么

What is the contract of a function or variable in TypeScript

本文关键字:约定 是什么 变量 函数 TypeScript      更新时间:2023-09-26

我是TypeScript的新手,在我的机器上成功安装后,我在TypeScript的官方文档页面上看到了一句话"TypeScript中的类型注释是记录函数或变量的预期契约的轻量级方式"。

在TypeScript中的函数或变量的上下文中,contract一词是什么。

我看了一个例子:

function greeter(person: string){
   return "Hello, " + person;
}
var user = "Jane User";
document.body.innerHTML=greeter(user);

这与函数变量person附带的字符串注释有关吗?

如有任何帮助,我们将不胜感激。

这是官方文档的链接

如果你对这个上下文中的合同一词感兴趣:就像你可以期望你的雇主在每个月底根据你的合同支付你的工资一样,你可以期望greeter的自变量将是一个字符串(但是你可以很容易地打破这个合同)

我将尝试通过示例进行解释。这是代码:

function greeter(person: string){
   return "Hello, " + person;
}
var user = "Jane User";
document.body.innerHTML=greeter(user);

我们已经从向greeter()函数传递字符串值变成了传递数值。与JavaScript的动态特性一样,它并不在乎——它只是继续并将其转换为字符串,以便将其呈现给浏览器。TypeScript也很高兴,因为数字可以转换成字符串。

问题是:这不是我想要的。我只打算让greetiner方法接受字符串值,但JavaScript不允许我表达这种意图。我能保证参数值是字符串的唯一方法是在运行时用javascript编写代码进行检查。

以下是TypeScript"预定合同"的播放位置。如果我只想传入字符串,我可以明确地说value参数是一个字符串。