作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在学习一门类(class),目前的挑战是“编写一个接受姓名和年龄数组的函数,然后只返回姓名。”
到目前为止,我的方法是这样的:
function names(arr: [string, number]) {
let result: [] = [];
arr.forEach((element) => {
if (typeof(element) === "string") {
result.push(element);
}
})
return result;
}
我正在尝试让测试通过该断言,即我实际上只获得了从我的函数返回的字符串。我不知所措,我尝试解决方案时遇到的当前错误是
names([['Amir', 34], ['Betty', 17]])
Expected: ['Amir', 'Betty'] but got: type error: Argument of type 'string' is not assignable to parameter of type 'never'.
非常感谢任何帮助!
最佳答案
你只需要定义
let result: [] = [];
作为
let result: string[] = [];
看起来您的参数也是一个数组数组。所以你需要定义
arr: [string, number]
作为
arr: [string, number][]
或等效语法是
arr: Array<[string, number]>
然后也改变你的 for 循环。诸如此类。
function names(arr: [string, number][]) {
let result: string[] = [];
arr.forEach(([element]) => {
result.push(element);
})
return result;
}
请注意,我使用解构赋值来获取第一个元素。
关于javascript - 使用 Typescript 从元组中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59582454/
如何在每个新行创建一个新数组/元组? 就像我有这个循环来读取文件: for line in csv.reader(f, delimiter='\t', lineterminator='\t\t', d
我正在尝试将值写入(我可以很好地读取)MSSQL 实例。我的代码类似于: import pypyodbc lst = ['val1', 'val2', 'val3'] connection = pyp
我是一名优秀的程序员,十分优秀!