在 TypeScript 中破坏字符串数组可选参数?
Destructing string array optional parameters in TypeScript?
我需要实现一个字符串连接函数,功能如下所示,
function concatenation(original: string, name1?, name2?){
return original + name1 + name2;
}
但是,问题是,关于name
可以有更多的参数;因此,这不是一种好的编码风格。我想把它改成如下所示。
function concatenation(original: string, name?:[string]){
return original + ...name1;
}
但是这样一来,程序就会报错。我怎样才能实现它?
您可以将休息与 join 一起用作:
function concatenation(original: string, name1?, name2?) {
return original + name1 + name2;
}
concatenation('Original', 'Name1', 'Name2', 'Name3');
这可以处理任意数量的字符串参数
function concatenation2(...names: string[]) {
return names.join('');
}
concatenation2('Original', 'Name1', 'Name2', 'Name3');
function concatenation2(...names) {
return names.join('');
}
console.log(concatenation2('Original', 'Name1', 'Name2', 'Name3'));
提供您的错误报告将使您更容易发现您的真实问题。
事实上,您的函数 concatenation
实际上所做的只是连接多个字符串变量,尽管您试图通过名称来区分它们。因为你想把变量放在函数的参数中,你可以简单地使用 destructuring assignment.
function concatenation(...items) {
// `items` is an Array consisting of all the function arguments.
items.join('');
}
concatenation(1,2,3) // "123"
concatenation("a", "bcd", "ef", "g", "h") // "abcdefgh"
并且请注意,您不能在 JavaScript 中使用 TypeScript 类型注释。还有问题描述中的类型注解其实是不合法的
您不能使用任何类型的算术运算符(+、- 等...)解构 javascript 对象。
function concatenation(original: string, names?: [string]) {
return `${original}${names.split("")}`;
}
concatenation("original", ["name1", "name2", "name3"]);
我需要实现一个字符串连接函数,功能如下所示,
function concatenation(original: string, name1?, name2?){
return original + name1 + name2;
}
但是,问题是,关于name
可以有更多的参数;因此,这不是一种好的编码风格。我想把它改成如下所示。
function concatenation(original: string, name?:[string]){
return original + ...name1;
}
但是这样一来,程序就会报错。我怎样才能实现它?
您可以将休息与 join 一起用作:
function concatenation(original: string, name1?, name2?) {
return original + name1 + name2;
}
concatenation('Original', 'Name1', 'Name2', 'Name3');
这可以处理任意数量的字符串参数
function concatenation2(...names: string[]) {
return names.join('');
}
concatenation2('Original', 'Name1', 'Name2', 'Name3');
function concatenation2(...names) {
return names.join('');
}
console.log(concatenation2('Original', 'Name1', 'Name2', 'Name3'));
提供您的错误报告将使您更容易发现您的真实问题。
事实上,您的函数 concatenation
实际上所做的只是连接多个字符串变量,尽管您试图通过名称来区分它们。因为你想把变量放在函数的参数中,你可以简单地使用 destructuring assignment.
function concatenation(...items) {
// `items` is an Array consisting of all the function arguments.
items.join('');
}
concatenation(1,2,3) // "123"
concatenation("a", "bcd", "ef", "g", "h") // "abcdefgh"
并且请注意,您不能在 JavaScript 中使用 TypeScript 类型注释。还有问题描述中的类型注解其实是不合法的
您不能使用任何类型的算术运算符(+、- 等...)解构 javascript 对象。
function concatenation(original: string, names?: [string]) {
return `${original}${names.split("")}`;
}
concatenation("original", ["name1", "name2", "name3"]);