首页 > 解决方案 > 在 TypeScript 中为接受数字并返回字符串的函数编写类型

问题描述

我有这个问题,我不知道我的错误是什么?

为一个接受一个数字并返回一个字符串的函数编写一个类型。

https://www.executeprogram.com/courses/typescript/quizzes/writing-a-function-type

这是我的代码

type TakesNumberReturnsString = number
const numberToString = (x: TakesNumberReturnsString) => {
  return x.toString
}

这些是结果

这是错误

>

function add1AndAppend1(x: number): string {
  return (x + 1).toString() + 1
}
const f: TakesNumberReturnsString = add1AndAppend1
f(1)

Expected: '21' but got: type error: type error: Type '(x: number) => string' is not assignable to type 'number'.

这些都是好的结果

>

function add1AndAppend1(x: number): string {
  return (x + 1).toString() + 1
}
const f: TakesNumberReturnsString = add1AndAppend1
f("hello")

Expected: type error: Argument of type '"hello"' is not assignable to parameter of type 'number'. OK!
>

function sayHello(x: undefined): string {
  return 'hello'
}
const f: TakesNumberReturnsString = sayHello
f(undefined)

Expected: type error: Type '(x: undefined) => string' is not assignable to type 'TakesNumberReturnsString'. OK!
>

function add1(x: number): string {
  return x + 1
}
const f: TakesNumberReturnsString = add1
f(1)

Expected: type error: Type 'number' is not assignable to type 'string'. OK!
4 tests, 1 failure```

标签: typescriptfunctiontypes

解决方案


推荐阅读