TypeScript 中对象参数的默认值
默认参数是用户希望始终合并到代码中的东西。TypeScript 具有在对象中提供默认参数和在函数中传递对象的功能。
本教程将重点介绍如何在 TypeScript 中使用默认参数。
如果没有值传递给函数,则可以将函数定义为使用默认值。以下代码段演示了如何实现这一点。
interface Config {
file : string ;
test : boolean;
production : boolean;
dbUrl : string;
}
function getConfig ( config : Config = { file : 'test.log', test : true,
production : false, dbUrl : 'localhost:5432' }) {
console.log(config);
}
getConfig();
getConfig({file : 'prod.log', test: false, production : true, dbUrl : 'example.com/db'});
输出结果:
{
"file": "test.log",
"test": true,
"production": false,
"dbUrl": "localhost:5432"
}
{
"file": "prod.log",
"test": false,
"production": true,
"dbUrl": "example.com/db"
}
上面显示了如何在 TypeScript 中使用默认值。
如果在调用函数时没有传递 Config
对象的值,getConfig
函数将使用函数定义中分配的默认值,这可以在第一次调用 getConfig
函数的情况下看到。
在对函数的第二次调用中,默认值被传递给函数的值覆盖。
TypeScript 还支持通过解构对象的属性将默认值传递给函数。以下代码段显示了它是如何实现的。
interface Person {
firstName : string ;
lastName : string ;
}
function getPerson( {firstName = 'Steve', lastName = 'Jobs' } : Person ) {
console.log( firstName + ' ' + lastName);
}
getPerson({} as Person);
getPerson({ firstName : 'Tim', lastName : 'Cook'});
输出结果:
"Steve Jobs"
"Tim Cook"
因此,与前面的示例一样,有两次调用函数 getPerson
,一次使用默认值,另一次使用传递给函数的值。不同之处在于默认情况下,要传递一个空对象 {}
,否则 TypeScript 将抛出错误 - Expected 1 arguments, but got 0
。
在为对象分配属性或将对象传递给函数时,我们可以使对象的某些属性具有默认值,而其他属性是必需的。这可以通过使用 ?
来完成运算符。
以下代码段显示了它是如何完成的。
interface Config {
file? : string ;
test? : boolean;
production : boolean;
dbUrl : string;
}
function getConfig( { file = 'api.log', test = true, production, dbUrl} : Config ) {
var config : Config = {
file,
test,
production,
dbUrl
};
console.log(config);
}
getConfig({production : true, dbUrl : 'example.com/db'});
输出结果:
{
"file": "api.log",
"test": true,
"production": true,
"dbUrl": "example.com/db"
}
Partial
关键字是一个有用的工具,可以使对象的所有属性成为可选的,并且可用于在函数定义的情况下使对象的所有字段都具有默认值。使用上面的示例。
interface Config {
file : string ;
test : boolean;
production : boolean;
dbUrl : string;
}
function getConfig( { file = 'api.log', test = true, production = false, dbUrl = 'localhost:5432'} : Partial<Config> ) {
var config : Config = {
file,
test,
production,
dbUrl
};
console.log(config);
}
getConfig({production : true});
输出结果:
{
"file": "api.log",
"test": true,
"production": true,
"dbUrl": "localhost:5432"
}
因此,在上面的示例中,我们可以看到所有字段都有默认值,并且 production
属性的值已被覆盖。
相关文章
在 TypeScript 中使用 try..catch..finally 处理异常
发布时间:2023/03/19 浏览次数:181 分类:TypeScript
-
本文详细介绍了如何在 TypeScript 中使用 try..catch..finally 进行异常处理,并附有示例。
在 TypeScript 中使用 declare 关键字
发布时间:2023/03/19 浏览次数:97 分类:TypeScript
-
本教程指南通过特定的实现和编码示例深入了解了 TypeScript 中 declare 关键字的用途。
在 TypeScript 中 get 和 set
发布时间:2023/03/19 浏览次数:172 分类:TypeScript
-
本篇文章演示了类的 get 和 set 属性以及如何在 TypeScript 中实现它。
在 TypeScript 中格式化日期和时间
发布时间:2023/03/19 浏览次数:161 分类:TypeScript
-
本教程介绍内置对象 Date() 并讨论在 Typescript 中获取、设置和格式化日期和时间的各种方法。
在 TypeScript 中返回一个 Promise
发布时间:2023/03/19 浏览次数:182 分类:TypeScript
-
本教程讨论如何在 TypeScript 中返回正确的 Promise。这将提供 TypeScript 中 Returns Promise 的完整编码示例,并完整演示每个步骤。
在 TypeScript 中定义函数回调的类型
发布时间:2023/03/19 浏览次数:221 分类:TypeScript
-
本教程说明了在 TypeScript 中为函数回调定义类型的解决方案。为了程序员的方便和方便,实施了不同的编码实践指南。
在 TypeScript 中把 JSON 对象转换为一个类
发布时间:2023/03/19 浏览次数:110 分类:TypeScript
-
本教程演示了如何将 JSON 对象转换为 TypeScript 中的类。
使用 NPM 将 TypeScript 更新到最新版本
发布时间:2023/03/19 浏览次数:130 分类:TypeScript
-
本教程说明了如何使用 npm 更新到最新版本的 TypeScript。这将为如何使用 npm 将 TypeScript 更新到最新版本提供完整的实际示例。
使用 jQuery 和 TypeScript
发布时间:2023/03/19 浏览次数:151 分类:TypeScript
-
本教程提供了使用 jQuery 和 TypeScript 的基本理解和概念。