TypeScript中函数或变量的约定是什么
What is the contract of a function or variable in TypeScript
我是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参数是一个字符串。
相关文章:
- 这是什么 ==- javascript 运算符
- 我的单元测试选项是什么
- 打破承诺链的好方法是什么
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- Javascript中的空白是什么
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- 在JavaScript中拆分日期字符串的更好方法是什么
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 用javascript记录传递给回调的参数的约定是什么
- 当在JSON中使用包含对象的对象与对象数组时,可接受的约定是什么
- 当名称以数字开头时,库/类的 javascript 约定是什么
- 命名本地 jQuery 文件的正确约定是什么?
- JSON中空与空的约定是什么
- 本地变量的常规javascript jQuery命名约定是什么
- 对于只能启动一次的DOJO小部件,最佳实践命名约定是什么
- Ajax类的命名约定应该是什么:Button或ButtonView
- Javascript的“约定”是什么?或“;practice"调用
- 使用ES6 getter和setter而不是getProperty/setProperty约定的理由是什么?
- TypeScript中函数或变量的约定是什么
- 在 constructor() 中绑定许多 React 组件方法的上下文的正确约定是什么?